黑马程序员技术交流社区
标题:
我自己认为的一道也是很牛逼的题目,关于二维数组的,分享给大家.
[打印本页]
作者:
xuezhangjun
时间:
2016-11-14 19:35
标题:
我自己认为的一道也是很牛逼的题目,关于二维数组的,分享给大家.
题目:
定义一个3行3列的二维int数组,从控制台输入前三个元素的值,要求第一行的元素是1,3,5.
剩下的元素分别是该元素所在这一列的正上方的元素的3倍.打印这个二维数组从左上角到右下角这条对角线上元素的和.
如下所示:
//1, 3, 5
//3, 9, 15
//9, 27,
45
#include <stdio.h>
int main()
{
//定义一个3行3列的二维int数组
int arr[3][3] = {0};
//为数组的前三个元素即第一行元素赋值为1,3,5
for(int i = 0; i < 3; i++)
{
printf("请输入第%d个数: ", i+1);
scanf("%d", &arr[0]
);
}
//为行下标为1的元素赋值,值分别是其对应的下标为0的一行列下标相同的元素的三倍
//为行下标为2的元素赋值,值分别是其对应的下标为1的一行列下标相同的元素的三倍
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 3; j++)
{
arr[i+1][j] = arr
[j] * 3;
}
}
//遍历数组
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
printf("%d\t", arr
[j]);
}
printf("\n");
}
//打印这个二维数组从左上角到右下角这条对角线上元素的和
//声明一个变量用来存储累加和
int sum = 0;
//观察得出从左上角到右下角这条对角线上元素的行数恰好等于列数
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
if(i == j)
sum += arr
[j];
}
}
printf("sum = %d\n", sum);
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2