
这段c语言代码有什么错误?
题目:*2、请按照以下步骤去做1)在主函数中定义一个含有20个元素的一维数组a;2)给数组元素赋值;3)定义一个求数组n个元素和的函数;4)在主函数中调用该函数分别求数组...
题目:
*2、请按照以下步骤去做
1)在主函数中定义一个含有20个元素的一维数组a;
2)给数组元素赋值;
3)定义一个求数组n个元素和的函数;
4)在主函数中调用该函数分别求数组a的a[0]到a[5]的和,以及a[3]到a[8]的和。
函数的定义大致如下:
int sum_arry( int *p, int n )//函数返回所求值的和,p接收求和元素
//起始地址,n接收需要求和的元素的个数
代码:
#include<stdio.h>
void int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
sum_arry(int *p,int n);
printf("输出元素的和为"+sum);
}
int sum_arry(int *p,int n){
for(int i=*p ; i < n;i++){
sum=sum+p[i];
}
} 展开
*2、请按照以下步骤去做
1)在主函数中定义一个含有20个元素的一维数组a;
2)给数组元素赋值;
3)定义一个求数组n个元素和的函数;
4)在主函数中调用该函数分别求数组a的a[0]到a[5]的和,以及a[3]到a[8]的和。
函数的定义大致如下:
int sum_arry( int *p, int n )//函数返回所求值的和,p接收求和元素
//起始地址,n接收需要求和的元素的个数
代码:
#include<stdio.h>
void int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
sum_arry(int *p,int n);
printf("输出元素的和为"+sum);
}
int sum_arry(int *p,int n){
for(int i=*p ; i < n;i++){
sum=sum+p[i];
}
} 展开
5个回答
展开全部
1、函数怎么没给出返回值?这样不能通过编译的。
在函数定义中最后加上:return sum;
2、函数的调用不是照抄函数声明,而是要给出函数的参数。
sum_arry(a, 5);
sum_arry(a+3, 5);
3、你最后的printf中的sum值,在主函数中一直是0,得不到你想要的结果
sum=sum_arry(a,5);
4、函数声明也错误,怎么又有void,又有int?只能有一个,这里看你的意思应该是只能有int。
5、你的printf函数也写错了
6、for循环也写错了,i的初始值是数组元素值,这是不对的。要和n比较,必须是索引,这里应该从0开始。
合起来应该是这样:
#include<stdio.h>
int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
sum = sum_arry(a, 5);
printf("输出元素的和为%d", sum);
sum = sum_arry(a + 3, 5);
printf("输出元素的和为%d", sum);
}
int sum_arry(int *p,int n){
int sum = 0;
for(int i=0 ; i < n;i++){
sum=sum+p[i];
return sum;
}
}
在函数定义中最后加上:return sum;
2、函数的调用不是照抄函数声明,而是要给出函数的参数。
sum_arry(a, 5);
sum_arry(a+3, 5);
3、你最后的printf中的sum值,在主函数中一直是0,得不到你想要的结果
sum=sum_arry(a,5);
4、函数声明也错误,怎么又有void,又有int?只能有一个,这里看你的意思应该是只能有int。
5、你的printf函数也写错了
6、for循环也写错了,i的初始值是数组元素值,这是不对的。要和n比较,必须是索引,这里应该从0开始。
合起来应该是这样:
#include<stdio.h>
int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
sum = sum_arry(a, 5);
printf("输出元素的和为%d", sum);
sum = sum_arry(a + 3, 5);
printf("输出元素的和为%d", sum);
}
int sum_arry(int *p,int n){
int sum = 0;
for(int i=0 ; i < n;i++){
sum=sum+p[i];
return sum;
}
}
展开全部
#include<stdio.h>
int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int length = sizeof (a)/sizeof (int);
sum = sum_arry(a,length);
printf("输出元素的和为%d",sum);
}
int sum_arry(int *p,int n){
int sum = 0;
for(int i=0 ; i < n;i++){
sum=sum+p[i];
}
return sum;
}
//改了改,你先前写那个错误太多了。
int sum_arry(int *p,int n);
main(){
int sum =0;
int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int length = sizeof (a)/sizeof (int);
sum = sum_arry(a,length);
printf("输出元素的和为%d",sum);
}
int sum_arry(int *p,int n){
int sum = 0;
for(int i=0 ; i < n;i++){
sum=sum+p[i];
}
return sum;
}
//改了改,你先前写那个错误太多了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("输出元素的和为"+sum);这是java里的格式??
C里的格式不是应该是printf("输出元素的和为%d",sum);咩。。。
C里的格式不是应该是printf("输出元素的和为%d",sum);咩。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("输出元素的和为%d",sum);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sum_arry(p,20);
printf("输出元素的和为 %d",sum);
printf("输出元素的和为 %d",sum);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询