我对C非常陌生,我想弄清楚为什么我的代码返回的值不正确。为什么我的代码返回一个不正确的值?
int main()
{
printf("Welcome to my number generator! \n");
printf("What is the first number in the range? \n");
int rng1 = scanf("%d", &rng1);
printf("What is the second number in the range? \n");
int rng2 = scanf("%d", &rng2);
printf("What would increment would you like to go up in? \n");
int inc = scanf("%d", &inc);
do
{
printf("%d\n"rng1);
rng1 += inc;
}
while(rng1 != rng2);
}
return 0;
}
从这个代码,我希望第一范围和第二范围在一定数量的上升之间的号码清单,而是我得到1.我做错了的值? P.S.我试图'调试'它,发现当我用:
if(isalpha(rng1));
printf("I am a String...")
if(isdigit(rng1))
printf("I am a Digit")
它返回,“我是一个字符串...”。
谢谢!
这些测试*无用*(对不起,虽然不错)尝试查找scanf的描述并阅读它的返回值。 – usr2564301
仅供参考:'if(isalpha(rng1));'在if语句之后不应该有分号 - 'printf'将始终运行,因为如果条件与分号一致则“结束”。 – ipavl
scanf返回成功初始化变量的数量,因此你的每一个返回1(如果你认为它是一个有效的输入数字) 你应该这样做:'int rng1; scanf(“%d”,&rng1);' –