プロが教える店舗&オフィスのセキュリティ対策術

3つの整数を入力し、最大値を出力するプログラムを作りました。
最大値をさがすステップに入る前に、
「最大値を出力しますか?(y/n)」と聞いてy+Enterで実行するようになっています。この部分を、
y+Enter もしくは 空Enter で実行するにはどのように変更すればよいのでしょうか?大変お手数ですが、教えてください。
よろしくお願いします。

#include <stdio.h>
#include <stdlib.h>
int main(){
int i,max,max_no,a[3];
char YN[2];

printf("整数を3つ入力してください。\n");
for(i=0;i<3;i++){
printf("%d番目の整数: ",i+1);
scanf("%d",&a[i]);
}
printf("最大値を出力しますか?(y/n):");
scanf("%s",YN);
if(YN[0]=='y'){
printf("最大値をさがします。\n");
}
else{
exit(0);
}
max_no=0;
max=a[max_no];
for(i=1;i<3;i++){
if(a[i]>max){
max=a[i];
max_no=i;
}
}
printf("最大値は %d 番目のデータ %d です。\n",max_no+1,max);
return 0;
}

A 回答 (1件)

こんな感じでどうでしょう。



#include <stdio.h>

int main(void){
int a[3];
int max_no, YN, i;

printf("整数を3つ入力してください。\n");
for(i = 0; i < 3; i ++){
printf("%d番目の整数: ", i + 1);
scanf("%d", &a[i]);
}
while(getchar() != '\n') ;
printf("最大値を出力しますか?(y/n):");
YN = getchar();
if(YN == 'y' || YN == '\n') printf("最大値をさがします。\n");
else return 0;
max_no = 0;
for(i = 1; i < 3; i ++){
if(a[i] > a[max_no]) max_no = i;
}
printf("最大値は %d 番目のデータ %d です。\n", max_no+1, a[max_no]);
return 0;
}
 
    • good
    • 0
この回答へのお礼

ソースまで作って頂いてありがとうございました。
大変参考になりました。

お礼日時:2006/11/19 16:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!