1、题目:输出乘法口诀表,行列数目自己定义,如输入9,就是9*9乘法表,输入12,就是12*12乘法表;
2、代码
#include<stdio.h>
#include <stdlib.h>
int main()
{
int n = 0;
int i = 1, j = 1, sum = 0;
printf("请输入口诀数字:>\n");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
sum = i*j;
//其中 % 2d中的2表示输出两格,数向后靠齐,即右对齐;%-2d,则表示数左对齐
printf("%d*%d=%2d ", j, i, sum);
}
printf("\n");
}
/*int i = 1, j = 1,sum=0;
for (i = 0; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
sum = i*j;
printf("%d*%d=%2d ", j, i, sum);
}
printf("\n");
}*/
system("pause");
return 0;
}
3、结果
4、总结
问题:scanf("%d\n",&n)和scanf("%d",&n) 前者为什么我输入一个数字后一直按回车都无法结束 除非输入数字回车?
答:在scanf中\n不表示接受一个回车符,而是表示忽略所有的空白字符,包括回车,空格,tab 所以想要结束输入, 输入任意一个非空白字符即可, 但是该字符仍然会留在缓冲区中, 所以一般不建议在 scanf中使用\n。
本文探讨了在使用scanf时遇到的问题:使用`scanf("%d
",&n)`会导致输入数字后需要多次回车才能结束输入。原因在于`
`并不接收回车符,而是忽略所有空白字符。解决方法是避免在scanf格式字符串中使用`
`,因为这可能导致输入的非空白字符留在缓冲区中。"
134738484,7783893,Qt对象间通信:传统回调函数机制解析,"['Qt', '开发语言', '回调机制']

1万+

被折叠的 条评论
为什么被折叠?



