首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C的二位数组的有关问题

2013-12-28 
C的二位数组的问题我先说下我想要实现的功能,相当于一个表格,就像用excel一样,得到每一行的和,例如:x1 x2

C的二位数组的问题
我先说下我想要实现的功能,相当于一个表格,就像用excel一样,得到每一行的和,例如:
x1 x2 x3 x4 sum
1  1  1  1   4
2  2  2  2   8
3  3  3  3   12
我现在想到的办法就是弄个二维数组,可是最后的和怎么弄出来不会了,循环嵌套的完全头晕了
请大神帮我分析下怎么写 或者有没有好一点的办法
菜鸟求解救啊!!!!

[解决办法]
int  a[3][5];
for(int i=0;i<3;i++)
a[i][4]=0;
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
a[i][4]+=a[i][j];
[解决办法]


//二维数组不会的话,可以考虑先用一维的!
int a1[5]= {0};
//省略赋值操作
...
for(int i=0; i< 4;i++)
  a1[4] = a1[4] + a1[i];

//以此类推第二行,第三行,复杂点就复杂点,自己能实现就好!

[解决办法]
楼上可以解决,自己试下就知道了
[解决办法]
建议格式化代码,有助于理清思路;



scanf("%d", &n);
p = (int**)calloc(n, sizeof(int*));
assert(p);

for (i = 0; i < n; i++)
{
p[i] = (int*)calloc(n + 1, sizeof(int)); //用calloc会将分配缓冲区置0 
assert(p[i]);

for (j = 0; j < n; j++) //注意这里循环结束条件,原来的输入会覆盖计算结果 
{
scanf("%d", &p[i][j]);  //注意这里scanf第二个参数 

p[i][n] += p[i][j]; //这里原来p[i][n]未初始化为0 
}
}

for (i = 0; i < n; i++)
{
for (j = 0; j < n + 1; j++)
{
printf("%d ", p[i][j]);
}
}

热点排行