#include<stdio.h> /* 两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。 */ #define N 10 void doubleFor(); void main() { doubleFor(); } //双重for循环,二位数组的方式实现 void doubleFor() { int num[N][N]; for (int a = 0; a < N; a++) { for (int b = 0; b < N; b++) { num[a][b] = N*a + b + 1; printf("%-5d", num[a][b]); } printf("\n"); } //对角线的和 int sum = 0; for (int i = 0; i < N; i++) { sum += num[i][i]; //对角线,正好是a=b时 } printf("\n对角线的和为:%d", sum); system("pause"); }
运行结果
第二种方式:
#include<stdio.h> /* 两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。 */ #define N 10 void oneFor(); void main() { oneFor(); } //双重for循环,二位数组的方式实现 void doubleFor() { int num[N][N]; for (int a = 0; a < N; a++) { for (int b = 0; b < N; b++) { num[a][b] = N*a + b + 1; printf("%-5d", num[a][b]); } printf("\n"); } //对角线的和 int sum = 0; for (int i = 0; i < N; i++) { sum += num[i][i]; //对角线,正好是a=b时 } printf("\n对角线的和为:%d", sum); system("pause"); }
运行结果
同时运行:
#include<stdio.h> /* 两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。 */ #define N 10 void doubleFor(); void oneFor(); void main() { doubleFor(); oneFor(); } //双重for循环,二位数组的方式实现 void doubleFor() { int num[N][N]; for (int a = 0; a < N; a++) { for (int b = 0; b < N; b++) { num[a][b] = N*a + b + 1; printf("%-5d", num[a][b]); } printf("\n"); } //对角线的和 int sum = 0; for (int i = 0; i < N; i++) { sum += num[i][i]; //对角线,正好是a=b时 } printf("\n对角线的和为:%d", sum); system("pause"); } //用单循环实现 void oneFor() { int num[N][N]; int a = 0; for (int i = 0; i < N*N; i++) { num[i / N][i%N] = ++a; printf("%-5d",num[i/N][i%N]); if ((i+1)%N == 0) //每N个换行 { printf("\n"); } } system("pause"); }
运行结果:
时间: 2024-12-25 20:34:26