急 谁帮忙解决一个c语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:04:47
scanf("%d",&n);
while(n<=0)
{
printf("ileague input!please input again:\n");
scanf("%d",&n);
}为什么我输入一个字符如y就不行了 怎么改阿 ?谢谢

你让输入的是%d格式的,也就是一个整型数,这是判断n<=0是真是假,只要你输入的是小于等于0的数就行了。如果你输入的是一个字符,比如y,就要换一个格式符,不能用%d要用%c。n也要定义成字符型。
修改如下:
#include "stdio.h"
void main()
{
char n;
scanf("%c",&n);
while(n!='\0')
{
printf("ileague input!please input again:\n");
scanf("%c",&n);
}
}

恩 应该是你用scanf的时候 将回车键也当做是一个字符了 所以解决的办法是在while循环内scanf语句后加一个getchar()用来接收缓冲区的回车符。