C程序问题,输入一个数组,然后求所有元素的和!
部分代码已经给出,喊你用函数来做。我做了一部分,可是不对。是不是数组不能直接赋值,需要用指针来传值?代码如下:#include<stdio.h>/*本部分代码功能建议:函...
部分代码已经给出,喊你用函数来做。我做了一部分,可是不对。是不是数组不能直接赋值,需要用指针来传值?代码如下:
#include <stdio.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
int fun(int a[3][3]);
int fun(int a[3][3])
{
int i, j , sum;
sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum+=a[i][j];
}
}
return sum;
}
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
void main()
{
int num[3][3], i, j, sum;
printf("Please input the 3x3 Matrix:\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
scanf("%d", &num[i][j]);
}
}
/* 本部分代码功能建议:调用用户自定义函数求矩阵所有元素之和 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
sum=fun(num[3][3]);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
printf("\nsum=%d\n", sum);
}
/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
那么顺便问一下,这道题可不可以用指针来做啊!!!代码又是怎样的啊~~ 展开
#include <stdio.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
int fun(int a[3][3]);
int fun(int a[3][3])
{
int i, j , sum;
sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum+=a[i][j];
}
}
return sum;
}
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
void main()
{
int num[3][3], i, j, sum;
printf("Please input the 3x3 Matrix:\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
scanf("%d", &num[i][j]);
}
}
/* 本部分代码功能建议:调用用户自定义函数求矩阵所有元素之和 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
sum=fun(num[3][3]);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
printf("\nsum=%d\n", sum);
}
/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
那么顺便问一下,这道题可不可以用指针来做啊!!!代码又是怎样的啊~~ 展开
3个回答
展开全部
欢迎采纳:
把sum=fun(num[3][3]); 改为 sum=fun(num);就可以了
若换成指针可做如下修改:
int fun(int* a, int nlen, int jlen );
int fun(int* a, int nlen, int jlen )
{
int i, j , sum;
sum=0;
for(i=0;i<nlen;i++)
{
for(j=0;j<jlen;j++)
{
sum+=a[i][j];
}
}
return sum;
}
main函数调用过程为:sum=fun((int*)num,3,3);
把sum=fun(num[3][3]); 改为 sum=fun(num);就可以了
若换成指针可做如下修改:
int fun(int* a, int nlen, int jlen );
int fun(int* a, int nlen, int jlen )
{
int i, j , sum;
sum=0;
for(i=0;i<nlen;i++)
{
for(j=0;j<jlen;j++)
{
sum+=a[i][j];
}
}
return sum;
}
main函数调用过程为:sum=fun((int*)num,3,3);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询