返回:贺老师课程教学链接
【项目1-折腾二维数组】
创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后:
- 通过键盘输入,使后两列的10个元素获得值;
- 按行序优先输出数组元素;
- 将所有元素值乘以3后保存在数组中;
- 按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”);
- 将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出);
- 输出数组中的所有偶数;
- 输出所有行列下标之和为3的倍数的元素值。
#include <stdio.h> int main( ) { int i,j; //创建数组,为数组中的前两列的10个元素赋初值 int a[5][4]= {{0,1},{4,5},{8,9},{12,13},{16,17}}; //键盘输入后两列10个元素的值 printf("请输入10个整数:\n"); //按行序优先输出 printf("数组中的值为:\n"); //将所有元素值乘以3后保存在数组中 printf("现在将所有元素乘以3倍..."; //按行序优先输出 printf("行序优先输出:\n"); //按列序优先输出(见题目描述) printf("列序优先输出:\n"); //将数组“倒”着输出(见题目描述) printf("倒着输出:\n"); //输出数组中的所有偶数 printf("数组中的偶数:\n"); //输出所有行列下标之和为3的倍数的元素值 printf("行列下标之和为3的倍数的元素:\n"); return 0; }
提示:编程时,可以做一点,调一点。参考的运行界面如图:
[参考解答]
#include <stdio.h> int main( ) { int i,j; //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值 int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}}; //键盘输入使后两列10个元素的值 printf("请输入10个整数:\n"); for(i=0;i<5;++i) for(j=2;j<4;++j) scanf("%d", &a[i][j]); //按行序优先输出 printf("数组中的值为:\n"); for(i=0;i<5;++i) //i行号 { printf("第%d行: ", i); for(j=0;j<4;++j) //j列号 printf("%d\t", a[i][j]); printf("\n"); } //将所有元素值乘以3后保存在数组中 printf("现在将所有元素乘以3倍..."); for(i=0;i<5;++i) for(j=0;j<4;++j) a[i][j]*=3; printf("完成!\n"); //按行序优先输出 printf("行序优先输出:\n"); for(i=0;i<5;++i) //i行号 { printf("第%d行: ", i); for(j=0;j<4;++j) //j列号 printf("%d\t", a[i][j]); printf("\n"); } //按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”) printf("列序优先输出:\n"); for(i=0;i<4;++i) //i列号 { printf("第%d列: ", i); for(j=0;j<5;++j) //j行号 printf("%d\t", a[j][i]); printf("\n"); } //将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出) printf("倒着输出:\n"); for(i=4;i>=0;--i) //i行号 { printf("第%d行: ", i); for(j=3;j>=0;--j) //j列号 printf("%d\t", a[i][j]); printf("\n"); } //输出数组中的所有偶数 printf("数组中的偶数:\n"); for(i=0;i<5;++i) //i行号 { for(j=0;j<4;++j) //j列号 if(0==a[i][j]%2) printf("a[%d][%d]=%d\n", i, j, a[i][j]); } //输出所有行列下标之和为3的倍数的元素值 printf("行列下标之和为3的倍数的元素:\n"); for(i=0;i<5;++i) //i行号 { for(j=0;j<4;++j) //j列号 if(0==(i+j)%3) printf("a[%d][%d]=%d\n", i, j, a[i][j]); } return 0; }
时间: 2024-10-26 18:52:44