プログラムのことで
Posted: 2008年12月04日(木) 15:25
だいぶ前に投稿させてもらったSoraです。
プログラムとにらめっこしてみたり、C言語のサイトを見てみたりしたのですが
やっぱり解らないというか、どうしたらできるのか解りません。
2つのプログラムの後半なので、切る部分が適切でないかもしれませんが;
やりたいことは
・scanf関数を使用して、数字を10回入力し、最も大きな奇数を表示しなさい。
※未入力、半角数値以外の入力はエラーとし、もう一度入力できるようにする事。
です。
未入力半角数値以外という入力エラーがまじめに解りません;
どこをどのように改変すれば出来る様になるのか、がわかりません。
前もご指南いただいたのですが、改変する場所が違ったのか出来ませんでした。
よろしくお願いします。
プログラムとにらめっこしてみたり、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回入力し、最も大きな奇数を表示しなさい。
※未入力、半角数値以外の入力はエラーとし、もう一度入力できるようにする事。
です。
未入力半角数値以外という入力エラーがまじめに解りません;
どこをどのように改変すれば出来る様になるのか、がわかりません。
前もご指南いただいたのですが、改変する場所が違ったのか出来ませんでした。
よろしくお願いします。