小白求助c语言程序出现了两个warning,求大神帮助
3个人,两门学科,求个人平均分和学科平均分,我调用函数来计算,但是这两个函数makespointerfromintegerwithoutacast.#include<st...
3个人,两门学科,求个人平均分和学科平均分,我调用函数来计算,但是这两个函数makes pointer from integer without a cast.
#include<stdio.h>
int main()
{int c[3][2];
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{printf("请输入成绩");
scanf("%d",&c[i][j]);}}
float average1(int c[3][2]);
float average2(int c[3][2]);
average1(c[3][2]);
average2(c[3][2]);
return 0;
}
float average1(int c[3][2])
{
float aver;
int i,j;
int sum=c[0][0];
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{sum=sum+c[i][j];}
aver=sum/2;
printf("个人平均分=%f\n",aver);
//ruturn aver;
}}
float average2(int c[3][2])
{
float aver;
int i,j;
int sum=c[0][0];
for(j=0;j<2;j++)
{for(i=0;i<3;i++)
{sum=sum+c[i][j];}
aver=sum/3;
printf("学科平均分=%f",aver);
}
//return aver;
} 展开
#include<stdio.h>
int main()
{int c[3][2];
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{printf("请输入成绩");
scanf("%d",&c[i][j]);}}
float average1(int c[3][2]);
float average2(int c[3][2]);
average1(c[3][2]);
average2(c[3][2]);
return 0;
}
float average1(int c[3][2])
{
float aver;
int i,j;
int sum=c[0][0];
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{sum=sum+c[i][j];}
aver=sum/2;
printf("个人平均分=%f\n",aver);
//ruturn aver;
}}
float average2(int c[3][2])
{
float aver;
int i,j;
int sum=c[0][0];
for(j=0;j<2;j++)
{for(i=0;i<3;i++)
{sum=sum+c[i][j];}
aver=sum/3;
printf("学科平均分=%f",aver);
}
//return aver;
} 展开
3个回答
展开全部
修改完毕,有备注
#include<stdio.h>
void average1(int c[3][2])//既然不需要返还就改成void
{
float aver;
int i,j;
int sum=c[0][0];
for(i=0;i<3;i++){
for(j=0;j<2;j++){
sum=sum+c[i][j];
}
aver = sum/2;
printf("个人平均分=%f\n",aver);
}
}
void average2(int c[3][2])//既然不需要返还就改成void{
float aver;
int i,j;
int sum=c[0][0];
for(j=0;j<2;j++)
{for(i=0;i<3;i++)
{
sum=sum+c[i][j];}
aver=sum/3;
printf("学科平均分=%f",aver);
}
}
int main()
{
int c[3][2];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("请输入成绩");
scanf("%d",&c[i][j]);
}
}
float average1(int c[3][2]);
float average2(int c[3][2]);
average1(c);//函数调用问题
average2(c);
return 0;
}
#include<stdio.h>
void average1(int c[3][2])//既然不需要返还就改成void
{
float aver;
int i,j;
int sum=c[0][0];
for(i=0;i<3;i++){
for(j=0;j<2;j++){
sum=sum+c[i][j];
}
aver = sum/2;
printf("个人平均分=%f\n",aver);
}
}
void average2(int c[3][2])//既然不需要返还就改成void{
float aver;
int i,j;
int sum=c[0][0];
for(j=0;j<2;j++)
{for(i=0;i<3;i++)
{
sum=sum+c[i][j];}
aver=sum/3;
printf("学科平均分=%f",aver);
}
}
int main()
{
int c[3][2];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("请输入成绩");
scanf("%d",&c[i][j]);
}
}
float average1(int c[3][2]);
float average2(int c[3][2]);
average1(c);//函数调用问题
average2(c);
return 0;
}
展开全部
//ruturn aver;
//return aver;
你删掉干嘛,这样你float返回型函数就 没有返回值了。
而且第一个return aver不仅写错了位置,而且连return都拼错了。
//return aver;
你删掉干嘛,这样你float返回型函数就 没有返回值了。
而且第一个return aver不仅写错了位置,而且连return都拼错了。
追问
因为我这俩函数直接输出结果了,所以就没return了,主函数里直接调用了。我改成return,主函数用printf输出还是出现同样的warning,求助啊!
追答
warning是警告,并不是错误。
你把警告的内容发出来啊,看一眼就明白了,只发源程序,还要去自己调试,好麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种错误应该是你把一个整型值赋给了一个指针,warning应该是有在第几行的提示的。对照看一下就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询