因为打印一行算式的换行,以及打印空格的if-else没有放到相应的for循环里面,然后打印算式的语句有错误,所以导致打印没有达到预期的效果;
把打印换行的语句以及打印空格语句放到相应位置,再把打印算式的语句改一下即可,修改如下:
#include <stdio.h>
int main(void){
int i,j,k;
for(i=1;i<10;i++){
for(j=1;j<10;j++){
k=i*j;
printf("%d*%d=%d",i,j,k);
if(i*j<10){
printf(" ");
}else{
printf(" ");
}
}
printf("\n");
}
return 0;
}
那个if写进循环里,还有不应该输出ijk吗
记得换行,还有printf(”%d*%d=%d“,i,j,k)这里缺少了i,j,k。这里缺少后打印随机值,所以出现了这样的结果
#include <stdio.h>
#define N 9
int main()
{
int i = 0, j = 0;
for (i = 1; i <= N; i++)//打印9行
{
for (j = 1; j <= i; j++)//每行打印i个
{
printf("%d*%d=%-4d", i, j, i * j);
}
printf("\n");//换行
}
return 0;
}
printf的用法不对,还有参数要写
#include<stdio.h>
int main()
{
for (int i = 1; i <= 9; ++i)
{
for (int j = 1; j <= i; ++j)
{
printf("%d*%d=%-3d", j, i, i*j);//printf后面还有接收参数的
}
printf("\n");//这里打印完进行一格换行
}
return 0;
}