Найти самое «большое» и самое «маленькое» слово - C (СИ)
Формулировка задачи:
Доброго всем дня!!!!
задача такая:
Напишите программу, которая находит самое «большое» и самое «маленькое» слово. Слова сравниваются в лексикографическом порядке.Размер слова ограничен 20 символами. Программа должна прекращать принимать слова «на проверку» после ввода пустой строки.
Я решил что надо все введенные слова занести в массив , и тут у меня возникла проблема , ведь в си нет строк.....
В Нэте нашел , что можно всё это сделать с помощью указателей, Но как я вообще не понимаю,кто может подскажите,
вот такой код
а как сделать массив строк не знаю
пытался вот так
Спасибо всем заранее
#include <stdio.h> #include <malloc.h> #include <string.h> char *getWord() { char *w,c; int i; w=(char *)calloc(1,50); i=0; while(1) { c=getchar(); if (c == 10) break; w[i++]=c; } return w; } int main(int argc, char* argv[]) { int t, i; char *wd; char *small; char *bigword; i = 0; while(1) { printf("Enter word: "); wd=getWord(); if (strlen(wd) == 0) break; if(i == 0) { printf("hello"); small = &wd; bigword = &wd; } choiseBiggerWod(*small,*bigword, *bigword); free(wd); i++; }
char *tempArr[200]
Решение задачи: «Найти самое «большое» и самое «маленькое» слово»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define MAXLEN 10 int main() { char string[MAXLEN][20] = {{0}}; unsigned count = 0; unsigned i, j; char buff[20]; unsigned min; while (fgets(string[count], sizeof(string[count]), stdin) && (string[count][0] != '\n') && (count < MAXLEN)) { count++; } for (i = 0; i < (count - 1); ++i) { min = i; for (j = i + 1; j < count; ++j) { if (strcmp(string[min], string[j]) > 0) { min = j; } } strcpy(buff, string[min]); strcpy(string[min], string[i]); strcpy(string[i], buff); } for (i = 0; i < count; ++i) { printf("%s", string[i]); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д