输出情况
注意
这里博主初始化的二维数组是十行十列(a[10][10])的,在执行过程中忽视第一行第一列(a[0][0])即可,当然这里也可以将其修改为九行九列(a[9][9])通过修改循环的条件,但需要简单修改一下循环条件。
提示:以下是本篇文章正文内容,下面案例可供参考
一、答案
1.源代码
提示:如果读者使用的编译器是Visual Studio的话需要在第一行加如下一行代码,否者使用scanf函数会报错:
#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a[10][10], b, c;
for (b = 1; b <= 9; b++) {
for (c = 1; c <= 9;c++) {
a[b][c] = b * c;
}
}
for (b = 1; b <= 9; b++) {
for (c = 1; c <= b; c++) {
printf("%dx%d=%d \t",c,b,a[c][b]);
}
printf("\n");
}
return 0;
}
2.代码讲解
1.第一个双层for循环的作用
将每一项相乘的结果按纵列存储在a[b][c]中
2.第二个双层for循环的作用
将储存在a[b][c]中的数以a[c][b]的形式横向输出(注意!是a[c][b]),由于乘法口诀表的列数<=行数,所以内层循环的条件为c<=b.
总结
这个程序是比较简单的,当遇到此类以阶梯状输出数据的时候就应该有想到行数和列数的关系并设法一直作为条件。