只测试一些代码;应该运行以下,直到我输入'n'。但它在一轮后停止。任何人都可以解释它,并帮助我实现我想要的东西吗?
#include <stdio.h>
int main ()
{
char another = 'y';
int num;
while ( another == 'y' )
{
printf ("Enter an number ");
scanf ("%d", &num);
printf ("square of %d is %d", num, num * num);
printf ("\nWant to enter another number y/n\n");
scanf ("%c", &another);
}
}
感谢。
我非常感谢每一个人的评论。我在网上搜索了GDB,并在以后使用它。我不得不说这使得识别问题变得更加容易。 非常感谢。
答案 0 :(得分:4)
在%c
scanf (" %c", &another);
在前一个scanf()
之后,在缓冲区中吃掉左边的换行符。
1)使用main()
int main(void) //if no command line arguments.
2)检查scanf()
(以及其他函数)的返回值,以确保读取的值没有任何错误。
答案 1 :(得分:-1)
使用
scanf (" %c", &another);
^^^^^
最好还是写
printf ("square of %d is %lld", num, ( long long int )num * num);
^^^^ ^^^^^^^^^^^^^^^^^^^^