大家教我这个程序哪儿出错了!我是新手!谢谢大家!
#include <stdio.h>
int n=10;
int sum(int *p,int m);
void main()
{
int S;
int array[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int *ptr=array;
S=sum(int *ptr,int n);
printf("%d",S);
}
int sum(int *p,int m)
{
int s,i;
for(i=0;i<m;i++,p++)
{
s+=*p;
}
return s;
}
[解决办法]
1、sum里s没有初始化为0
2、S=sum(int *ptr,int n);没这么调用的,你得把int *和int这俩类型去掉啊
[解决办法]
#include <stdio.h>int n=10;int sum(int *p,int m);void main(){ int S; int array[]={1,2,3,4,5,6,7,8,9,10,11,12,13}; int *ptr=array; S=sum(ptr, n); printf("%d",S);}int sum(int *p,int m){ int s = 0; int i; for(i=0;i<m;i++,p++) { s+=*p; } return s;}
[解决办法]
S=sum(ptr,n);
[解决办法]
S=sum(ptr, n);
函数调用只需要传值 不需要带上类型
函数声明的时候才要类型
[解决办法]
果然很新啊
S=sum(int *ptr,int n);
改成这样
S=sum(ptr,n);
[解决办法]
代码大体上没问题,只是一些细节没注意,改动的地方我在注释中写了。运行结果:91
#include <stdio.h>#include "StdAfx.h" //加入头文件int n=10;int sum(int *p,int m);void main(){ int S = 0; int array[]={1,2,3,4,5,6,7,8,9,10,11,12,13}; int *ptr=array; // 指针指向数组第一个元素 S=sum(ptr, sizeof(array)/sizeof(int)); // 指针ptr在上一行代码已经定义过,用的时候就不需要在重新定义了。 sizeof(array1)/sizeof(int)是计算数组的大小 printf("%d",S);}int sum(int *p,int m){ int s = 0; // 变量记得要初始化 int i = 0; for(i=0;i<m;i++,p++) { s+=*p; } return s;}
[解决办法]