重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你定义变量后,是给变量分配的内存
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网站空间、营销软件、网站建设、光山网站维护、网站推广。
然后你给a,b都赋值了,对应的内存里的值也改了
但你没给sum赋值,sum显示的就是内存里原本存在的值了
要说哪里错了,就是你没写sum=a+b;
你也太天真了,如果不用数组的话,c语言怎么能一次返回一组数据呢??
如果要返回多个数,就要把数组弄进去,存放到数组中,要不就一次返回一个值。
个人建议,就一次返回一行的和就行了。程序改成:
int sum(int a[10000][6], int n) //n表示行号
{
int i,j;
int m=0;
for(j=0;j6;j++)
{
m=m+a[n][j];
}
return(m);
}
这样在主程序中,
将
printf("第%d行各数之和为:%d",i+1,sum(a));
printf("\n");/*使元素分行*/
改成
for(i=0;i10000;i++)
{
printf("第%d行各数之和为:%d\n",i+1,sum(a,i));
}
#includestdio.h
#includemath.h
int main()
{
int A[50][2];//储存每一组测试数据
int n,i,j;
int sum=0;//结果
int m;//储存每个位数,如2,22,222,2222
scanf("%d",n);
for(i=1;i=n;i++)
scanf("%d%d",A[i][1],A[i][2]);//读入测试数据
for(i=1;i=n;i++)
{
m=A[i][1];
for(j=1;j=A[i][2];j++)
{
sum=sum+m; //2,24
m=m*10+A[i][1];//2+2*10=22,22+200 ,这个地方改动了
printf("!!%d\n",m);
} //将每个位数的数加入sum中
printf("a+aa+aaa+...=%d\n",sum);//2+22+222+2222+22222
sum=0;
}
}
错误出在printf("sum=%d\n",sum);
sum前面不应该有,将去掉
printf("sum=%d\n",sum);
void num的max和main中的max以及min并不是同一个,main中的max和min都是未初始的值。max和min可以定义为全局或者要把max和min返回去
#includestdio.h
#includemath.h
int main()
{
int m,n,y,i,j,k=0,sum=0;
int sushu[200];
scanf("%d %d",m,n);
for(i=m;i=n;i++)
{
y=i1; //等同于 if(i1)y=1;else y=0;
for(j=2;j=sqrt(i);j++)
if(i%j==0)
{
y=0;
break;
}
if(y)
{
printf("%d ",i); //不需要打印的话,此行删去
sushu[k]=i;
sum+=sushu[k++];
}
}
printf("\nsum is %d\n",sum);
printf("%d",k);
getch();
return 0;
}