c语言求二维数组中所有元素的和

 我来答
问明6E
高粉答主

2019-06-18 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.4万
展开全部

#include<stdio.h

int main(void)

{

int ar[3][3]= { {1,2,3},

{4,5,6},

{7,8,9}

};

int num;

int i,j;

int k = 0,sum=0;

int (*ptr)[3];

ptr = ar;

num = sizeof(ar) / sizeof(ar[0]);

printf("num = %d\n",num);

printf("%d\n",*(*(ptr +0) + 1));

for(i = 0; i < 3 ;i++)

{

for(j = 0 ;j < 3; j++)

{

k += *(*(ptr + i)+j);

//sum += k;     

}

}

printf("%d\n",k);

return 0;

}

扩展资料:

main()函数用法:

大多数UNIX系统对main函数提供了三个参数,原型如下:

intmain(intargc,char*argv[],char*env[]);

其中第三个参数是环境表地址。

ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。

通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。

main函数的原型多是下面这种形式:

intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。

例如在linux平台下编写一个小程序

int main(intargc,char*argv[])

int i;

printf("argc:%d\n",argc);

for(i=0;i<argc;i++)

printf("argv[%d]:%s\n",i,argv[i]);

exit(0);

用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:

argc=1,argv[0]=”a.out”

运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。

在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)

int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。

运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。

风若远去何人留
推荐于2016-03-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部

遍历二维数组,逐个累加即可。

以二维数组为10行5列为例。

int a[10][5],i,j,s=0;
for(i = 0; i < 10; i ++)
    for(j = 0; j < 5; j ++)
        scanf("%d",&a[i][j]);//输入每个元素的值。
for(i = 0; i < 10; i ++)
    for(j = 0; j < 5; j ++)
        s+=a[i][j];//累加每个元素
        
printf("%d",s);//输出结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b2724f8
2013-06-17 · TA获得超过148个赞
知道答主
回答量:81
采纳率:100%
帮助的人:51.4万
展开全部
#include<stdio.h>
#define N 5    //可以改变数组的行数,***但是输数的时候要注意***
#define M 4    //可以改变数组的列数
void main()
{
    int i,j,a[][];
    int sum=0;//用于求和
    printf("请输入数:");
    for(i=0;i<N,i++)
    {
        for(j=0;j<M,j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<N,i++)
    {
        for(j=0;j<M,j++)
        {
            sum = sum + a[i][j];
        }
    }
    printf("数组总和为%d\n",sum);
    return 0;
    }
    希望对你有用,谢谢,望采纳!!!
更多追问追答
追问
有错误
有错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YoungerK
推荐于2018-02-26 · 超过25用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:68.3万
展开全部
1 #include <stdio.h>
2 int main()
3 {
4 int a[4][5] = {1,2,3,4,5,6,7,8,9};
5 int sum = 0;
6 int i,j;
7 for(i=0;i<sizeof(a)/sizeof(*a);i++)
8 for(j=0;j<sizeof(*a)/sizeof(int);j++)
9 {
10 sum += a[i][j];
11 }
12 printf("sum = %d\n",sum);
13 return 0;
14 }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lisngweiwo
2013-06-17
知道答主
回答量:56
采纳率:0%
帮助的人:27.5万
展开全部
int main(void)
{
int a[i][j]={};//数值按你自己的要求加进去
int k,m;
int sum= 0;
for(k = 0;k<i;k++)
for(m = 0;m<j;m++){
sum=+a[k][m];
}
printf("the sum is %d\n",sum);
return 0;
}
更多追问追答
追问
有错误啊
有错误啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式