c语言九九乘法表
{
int i = 0, j = 0;
int n;
while(scanf("%d",&n)!=EOF)
{
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ",j,i,i*j);
}
printf("\n");
} }
}
错误是格式错误。
怎么改?
输入
输入包含多组测试数据,以 EOF 结束。每组测试数据只包含一个正整数 n (0 < n < 10)。
输出对于每组测试数据,输出上图所示“九九乘法表”的前 n 行。
显示错误:这是ACM比赛题错误是:Presentation Error!!!
我认为是每一行的最后的空格多余了!?不知大神有何见解!请教。 展开
操作方法 :
#include
int main() {
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=i;j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i*j);
printf("\n");
}
return 0;
}
运行结果 :
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
九九乘法表共9行9列,重点考察for循环的掌握情况。下面给出了输出完整乘法表、右上、右下、左上、左下乘法表的代码。
1、【代码一】输出完整的三角形:
#include <stdio.h>
int main() {
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=9;j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i*j);
printf("\n");
}
return 0;
}
2、【代码二】输出右上三角形和左上三角形:
#include <stdio.h>
int main() {
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
if(j<i)
//打印八个空格,去掉空格就是左上三角形
printf(" ");
else
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
3、【代码三】输出右下和左下三角形:
#include <stdio.h>
int main(){
int i,j,n;
for(i=1;i<=9;i++){
// 将下面的for循环注释掉,就输出左下三角形
for(n=1; n<=9-i; n++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d*%d=%2d ",i,j,i*j);
printf("\n");
}
return 0;
}
#include
int main() {
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=i;j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i*j);
printf("\n");
}
return 0;
}
运行结果 :
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
main()
{
int i,j;
printf("\t\t完整版9*9乘法口诀表格\n");
for(i=1;i<10;i++)
{
for(j=1;j<i+1;j++)
printf("%d*%d=%d\t",j,i,i*j);
printf("\n");
}
}
这是我今天刚写的 参考下
你写的没有错误啊 我刚试过了
希望采纳 不会可追问
貌似是最后一行的空格需要删去!怎么删?
我写的那个~