永发信息网

c语言打印如下形式的乘法表 并讲解~

答案:3  悬赏:0  手机版
解决时间 2021-12-26 00:36
  • 提问者网友:棒棒糖
  • 2021-12-25 14:00
对循环这部分很晕
希望能帮忙讲解这题目~~
写出程序

谢谢~~



最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-12-25 14:10
int i, j;

for (i = 1; i < 10; i++)
{

int m ;
for (m = 1; m < i; m++)
printf("\t");

for (j = i * i; j < 10 * i; j += i)
{
printf("%d\t", j);
}
printf("\n");
}
全部回答
  • 1楼网友:鱼芗
  • 2021-12-25 15:07
这里,最大的问题其实是你要找出这道题中,数字的规律。规律其实很容易就看出来了: 每个数字 = 它所在的行数 * 它所在的列数。 之后,再确定要输出什么。很明显可以看到,每行的输出分两部分。第一部分,是空格。而第二部分,是数字。 然后,这里用的是循环(这里用循环是最方便的啦。) 而循环层数用的是两层循环,因为,这里面既有行和列。用两层循环,一层表示行数,一层表示列数,足够了。如果用单层循环,也是可以写的,不过条件控制比较麻烦。而用三层循环就显得有点浪费了。然后代码自然而然就出来啦。 不容易啊,百度知道,可以直接传代码了。 void Output() { for( int i = 1; i <= 9 ; ++i ) { int result = 0; //输出每行的空格 for ( int k = 1; k < i; ++k ) { //这里是四个空格 cout<<" "; } //输出每行的数字 for ( int j = i; j <= 9; ++j ) { result = j * i; //setw()是控制字符所占域宽的函数,比如说,我要输出3, //如果setw(4)的话,就是这个数字加上空格总共占4位。 //如果没有多的位数,会自动补上空格,3的话就会补三个空格 cout<<setw(4)<<result; } //用了两个换行,为了美观,多加了一个换行 cout<<'\n'<<endl; } }
  • 2楼网友:酒安江南
  • 2021-12-25 14:20
#include #include<stdio.h> int a[9][9]; void main() { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(i>j) { for(int m=0;m<i;m++) printf("%3d",' '); } if(i==j) { a[i][j]=i*j; printf("%3d",a[i][j]); } if(i<j) { a[i][j]=a[i][i]+i*(j-i); printf("%3d",a[i][j]); } } printf("\n"); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯