对循环这部分很晕
希望能帮忙讲解这题目~~
写出程序
谢谢~~
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");
}
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");
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯