c - 添加 2x4 多维数组的列
问题描述
#include <stdlib.h>
int main() {
int i, j, sum;
int a[2][4] = {{ 11, 15, 22, 7 }, { 12, 9, 16, 21 }};
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
for (i = 0; i < 2; i++) {
sum = 0;
for (j = 0; j < 4; j++) {
sum = sum + a[j][i];
}
printf("\n%d", sum);
}
return 0;
}
我试图切换a[i][j]
到,a[j][i]
但它没有添加列。添加行没有问题。我还希望每列对应一个字母。例如,第一列A
是11 + 12
.
解决方案
为什么是两个循环?一个就够了:
for (i = 0; i < 4; i++)
{
sum = a[0][i] + a[1][i];
printf("%d ", sum);
}
printf("\n");
如果你想要两个循环:
for (i = 0; i < 4; i++)
{
sum = 0;
for (j = 0; j < 2; j++)
{
sum += a[j][i];
}
printf("%d ", sum);
}
printf("\n");
应该管用。
更多问题
#include <stdlib.h>
应该
#include <stdio.h>
此外,在需要时声明变量是现代 C 的一个好习惯,并为变量选择更好的名称,即 preferrow
和col
overi
和over 。最后,不要在循环中使用像 2 和 4 这样的幻数,它们很容易出错:j
table
a
#include <stdio.h>
int main(void)
{
enum {rows = 2, cols = 4};
int table[rows][cols] =
{
{11, 15, 22, 7},
{12, 9, 16, 21}
};
for (size_t row = 0; row < rows; row++)
{
for (size_t col = 0; col < cols; col++)
{
printf("%d ", table[row][col]);
}
printf("\n");
}
for (size_t col = 0; col < cols; col++)
{
int sum = 0;
for (size_t row = 0; row < rows; row++)
{
sum += table[row][col];
}
printf("%d ", sum);
}
printf("\n");
return 0;
}
推荐阅读
- scala - 由于多个 scala lib 版本,intellij 2019.02 无法运行任何 scala 类
- google-apps-script - 用户在带有对话框的谷歌表中输入值(谷歌脚本)
- oracle - 选择 Oracle 数据库字符集
- perl - 使用严格和警告获取列表错误
- google-apps-script - 在工作表中的任何位置添加新行时,如何使用 Apps 脚本基于其他单元格设置单元格的值
- django-rest-framework - django rest 框架的 django-filter:in 运算符无法正常工作(它认为这是一个选择字段?)
- c++ - 类的构造函数和函数调用运算符()重载之间的C ++歧义
- shell - 根据数值对文件中的值进行排序
- python - 在 Python 子进程中调用 pip 时出现 FileNotFoundError
- xcode - react-native 中的警告“请求孤立任务”