请问如何利用数组和循环进行计算机的输出
比如以下实例
使用循环语句在屏幕上打印“九九乘法表”。
⑴ 在第1行输出4个空格,以及标题:“九九乘法表”。
⑵ 每个算式的乘数小数在前,大数在后(例如:4 × 8 = 32)。
⑶ 每个算式的乘数与积的域宽为2,左对齐;每个算式结尾有2个额外空格。
⑷ 每个算式的积存放在二维数组array中。
乘数小数在前、大数在后又该怎么操作?
以及最后的输出结果究竟是算式还是乘积?
#include <stdio.h>
int main() {
int array[9][9];
printf(" 九九乘法表\n");
// 计算乘法表并存储在二维数组array中
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
array[i-1][j-1] = i * j;
}
}
// 输出乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (i <= j) {
printf("%d × %d = %2d ", i, j, array[i-1][j-1]);
}
}
printf("\n");
}
return 0;
}
int[][] array = new int[9][9];
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++){
array[i][j] = (i+1)*(j+1);
}
}
System.out.println(" 九九乘法表");
System.out.print(" | ");
for(int i = 1; i <= 9; i++){
System.out.printf("%-2d ", i);
}
System.out.println();
System.out.println("--+---------------------------");
for(int i = 1; i <= 9; i++){
System.out.printf("%-2d| ", i);
for(int j = 1; j <= 9; j++){
System.out.printf("%-2d ", array[i-1][j-1]);
}
System.out.println();
}
分析:
#include <stdio.h>
#define N 12
//这里用到了一个宏定义,也可以不用
int main()
{
int i,a[N];
float av; //平均数一般不是整数,定义成浮点数
printf("*** 请输入12个数组元素:***\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]); //依次赋值
for(i=0;i<N;i++)
{
printf("%d ",a[i]); //%d后面留一个空格
av+=a[i];
if((i+1)%3==0)
printf("\n"); //直接用i作为计数变量,被3整除则输出换行
}
av /= N;
printf("av=%.2f\n",av); // %.2f小数点后保留两位小数输出
return 0;
}
运行:
#include <stdio.h>
int main() {
int i, j;
int array[10][2];
int n = 10;
// 输出九九乘法表
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d\*%d=%d\t", i, j, array[i][j]);
}
printf("\n");
}
// 输出乘数小数在前、大数在后的乘法表
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (i > 0) {
printf("%d\*%d=%d\t", i, j, array[i][j]);
} else {
printf("%d\*%d=%d\n", i, j, array[i][j]);
}
}
printf("\n");
}
return 0;
}