如何在C语言中给二维数组元素赋值并生成指定规则数组?
C语言二维数组相关问题解答
1. 给二维数组整数元素添加数值的方法
给所有元素加固定值
嵌套遍历数组的每一个元素,在原元素基础上直接加上目标数值即可。示例代码:
#include <stdio.h> int main() { int arr[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}}; int add_num = 5; // 要添加的数值 int i, j; // 遍历所有元素并执行加法 for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { arr[i][j] += add_num; } } // 打印结果 for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; }
给特定位置元素加值
直接通过数组下标定位到目标元素,执行加法操作即可。比如给第2行第3列(下标[1][2])的元素加3:
arr[1][2] += 3;
2. 生成符合指定规则的二维数组
先明确目标数组的规律:
- 共5行4列
- 首列元素是1到5的连续整数
- 第2列从10开始,每行递增1;第3列从20开始,每行递增1;第4列从30开始,每行递增1
你的原代码只给所有元素赋值为行索引i,完全没用到列索引j,自然生成不了符合要求的数组。修正后的代码如下:
#include <stdio.h> int main() { int arr[5][4]; // 按需定义5行4列即可,无需10x10 int i, j; for(i = 0; i < 5; i++) { // 首列赋值1-5 arr[i][0] = i + 1; // 处理第2到第4列 for(j = 1; j < 4; j++) { // 每列起始值为10*j,加上行索引i实现每行+1 arr[i][j] = 10 * j + i; } } // 打印验证数组 for(i = 0; i < 5; i++) { printf("["); for(j = 0; j < 4; j++) { printf("%d", arr[i][j]); if(j != 3) printf(" "); } printf("]\n"); } return 0; }
运行后会输出预期的数组:
[1 10 20 30] [2 11 21 31] [3 12 22 32] [4 13 23 33] [5 14 24 34]
内容的提问来源于stack exchange,提问作者Farkhad
相关产品推荐
相关产品推荐

