Как напечатать наибольшее число из пользовательского ввода через stdin в C.
#include <stdio.h> #include <string.h> #include <stdlib.h> #define BUFFER_SIZE 150 /*maximum allowed characters*/ int main(int argc, char *a[]) { char *buff = malloc(BUFFER_SIZE); if(!buff) { return -1; } /*Standard Input*/ int read = fgets(buff,BUFFER_SIZE,stdin); if(-1 != read) { char *word; char *ptr = buff; int max = NULL; while(word = strtok(ptr,"\t\n")) { int i = *word % 10; if(i>=0 && i <=9) { if(*word > max) { max = *word; } } ptr = NULL; } /*Standard Output*/ printf("Output:%d\n",max); } else { printf("No input string\n"); return -1; } free(buff); buff= NULL; return 0; }
Что я уже пробовал:
Выведите наибольшее число из пользовательского ввода через stdin в c.
Входная строка "10 abc 20 abc 30 4".
Выход должен быть 30, но программа возвращает 49.
PIEBALDconsult
Ну, 49-это ASCII-значение цифры 1 ; это должно быть подсказкой.