c程序问题帮忙解答

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:48:42
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
int magic;
int guess;
char vae;
srand(time(NULL));

do{
magic=rand()%100;
printf("please guess a magic number:");
scanf("%d",&guess);
if(guess>magic){
printf("wrong!too high!\n");
}
else if(guess<magic){printf("wrong!too low!\n");}
else {printf("congrandunations!\n");
printf("are you continue!y|n\n");
scanf(" %c",&vae);
}
}while(1);
}
结果出问题,帮帮忙。

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
int magic;
int guess;
char vae;

srand(time(NULL));

magic=rand()%100;
while(1) {
printf("please guess a magic number:");
scanf("%d",&guess);
if((guess<0) || (guess>=100)){
continue;
}
if(guess>magic){
printf("wrong!too high!\n");
}
else if(guess<magic) {
printf("wrong!too low!\n");
}
else {
printf("congrandunations!\n");
printf("are you continue!y|n\n");
getchar();
scanf("%c",&vae);
if((vae=='n') || (vae=='N')) {
break;
}
magic=rand()%100;
}
}
}

while(1)是什么意思呢,无限循环下去? 你doz中的最后一条语句不是说输入Y才继续么? 这样的话,while 中的循环条件就应该是(vae==y&&vae==Y)吧。 而且我觉得把最后一个else中的最后两句