プログラムとにらめっこしてみたり、C言語のサイトを見てみたりしたのですが
やっぱり解らないというか、どうしたらできるのか解りません。
#include<stdio.h> /*stdio.hをインクルードする*/ #include<string.h> /*string.hをインクルードする*/ #include<ctype.h> /*ctype.hをインクルードする*/ int main(){ /*メインクラス*/ int cnt=0,max1=0,cnt2=0,i=0,swich=0,soe=0; /*int型宣言*/ char str[128],max[128],su[128]; /*char型で宣言*/ printf("数字を10回入力してください。\n"); while(cnt2<10){ i=0; printf("%d回目の入力をしてください。" , cnt2+1); /*scanf("%c" , su);*/ while(1){ swich = 0; scanf("%c" , &su); if(su == '\n'){ su = '\0'; swich = 2; break; } if(isdigit(su)==0){ swich = 1; break; } i++; } if(swich == 1){ printf("数値を入力しなおしてください\n"); continue; } if(swich == 2 && i == 0){ printf("未入力ですもう一度入力してください。\n"); continue; } for(i=0;i<strlen(su);++i){ if((su%2) != 0){ if(su>max1){ max1 = su; } } } cnt2++; } printf("一番大きい奇数は>%d" , max1); rewind(stdin); /**/ getchar(); }
2つのプログラムの後半なので、切る部分が適切でないかもしれませんが;
やりたいことは
・scanf関数を使用して、数字を10回入力し、最も大きな奇数を表示しなさい。
※未入力、半角数値以外の入力はエラーとし、もう一度入力できるようにする事。
です。
未入力半角数値以外という入力エラーがまじめに解りません;
どこをどのように改変すれば出来る様になるのか、がわかりません。
前もご指南いただいたのですが、改変する場所が違ったのか出来ませんでした。
よろしくお願いします。