31.10.2011, 10:42 | #1 (permalink) |
Member
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
|
Строки
Дана строка содержащая слова. Вывести на экран слово, являющееся первым в алфавитном порядке. |
31.10.2011, 10:42 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме так же имеются темы у которых схожее содержание Строки в С Строки Строки Строки Строки Строки |
03.11.2011, 13:20 | #2 (permalink) |
Member
Регистрация: 16.03.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 11
|
Слова в один массив я собрал, но что то не выходит сравнение букв. (Компилял в DevCpp).
Код:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { char stroka[81]; char result[21][21]; char *p; int j=0,z=0,i=0,y; cout <<"Input stroky\n"; gets(stroka); p=stroka; while (*p) { if (*p==' ') {j++; z=0;} else { result[j][z] = *p; z++; } p++; } for (i=0; i<=j; i++) { for (z=0; z<=j; z++) { if (result[i][0]>result[z][0]) y=i; } } cout<<result[y]; system("pause"); return 0; } |
05.11.2011, 21:48 | #3 (permalink) |
Member
Регистрация: 14.12.2010
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 15
|
Проблема в том, что
1) Ты сравниваешь только первые символы слова и если они равны - не проверяешь второй буквы. 2) Символы хранятся в порядке а,б,в,г... т. е. номер а<б а ты пишешь больший. 3) Прописные буквы тоже влияют на результат этой программы. В общем,лучше пользуйся функцией stricmp(). |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|