c语言 来个高手帮忙解惑

本人菜鸟,有一个问题存在很久了,但是不知道为什么会这样;inti;floatj,k;k=j/i;这样的式子为什么会提示什么“frominttofloat"或者"fromf... 本人菜鸟,有一个问题存在很久了,但是不知道为什么
会这样;int i;
float j,k;
k=j/i;
这样的式子为什么会提示什么“from int to float"或者"from float to int
不这么定义我该怎么样定义它才不算错;下面一段程序,希望来个
高手帮忙解解惑
#include<stdio.h>
agev(float *p1[3],int n) /*求平均值*/
{ float all=0,age;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
all=all+*(*(p1+i)+j)+*(*(p1+i)+(j+1));
age=all/n;

}
return(age);
}
student_scor(float *p2[3],int n)/*输出某位学生n的分数*/
{
int j;
for(j=0;j<4;j++)
printf("%5.2f ",*(*(p2+n)+j));
}
void main()/*求3个学生的4个成绩平均分,并输出某位学生的成绩*/
{float a[3][4]={{63,52,80,69},{80,56,88,73},{88,68,65,40}};
float *p[3],ager;
int n;
scanf("%d",&n);
p=a;
ager=agev(p,12);
printf("ager=%5.2f\n",ager);
student_scor(p,n);
}
展开
 我来答
猪头或火宝宝
2010-07-21 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1617万
展开全部

#include<stdio.h>

float agev(float *p1[3],int n) /*求平均值*/

{   float all=0,age;             

 int i,j;

 for(i=0;i<3;i++)

  for(j=0;j<4;j++)

  {

   all=all+*(*(p1+i)+j)+*(*(p1+i)+(j+1));

   age=all/n;

   

  }

      return(age);

}

void student_scor(float *p2[3],int n)/*输出某位学生n的分数*/

{

 int j;

 for(j=0;j<4;j++)

  printf("%5.2f  ",*(*(p2+n-1)+j));

 printf("\n");

}

void main()/*求3个学生的4个成绩平均分,并输出某位学生的成绩*/

{float a[3][4]={{63,52,80,69},{80,56,88,73},{88,68,65,40}};

 float *p[3],ager;

 int n;

  

 for(int i=0;i<3;i++)

 {

  p[i]=a[i];

 }

    ager=agev(p,12);

 printf("ager=%5.2f\n",ager);

 printf("输入要查询的第几个学生(n>=1&&n<=3)");

    scanf("%d",&n);

    student_scor(p,n);

}

竹林倾听雨
推荐于2016-05-11 · TA获得超过540个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:235万
展开全部
第一:
从int转换为float
此时最好将第三句写成:
k = j / (float)i;
并且在这句之前一定要加上i非零判断,
因为0不能做除数。
应该写成:
int i; //默认初始化为0
float j, k;

if(0 != i) //如果i不为0
{
k = j / (float)i;
}

第二个问题:
应该这样写:
#include<stdio.h>
float agev(float *p1[3],int n) /*求平均值,这应该有返回值*/
{ float all=0,age;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
all=all+*(*(p1+i)+j)+*(*(p1+i)+(j+1));
age=all/n;

}
return(age);
}
void student_scor(float *p2[3],int n)/*输出某位学生n的分数*/
{
int j;
for(j=0;j<4;j++)
printf("%5.2f ",*(*(p2+n)+j));
}
int main()/*求3个学生的4个成绩平均分,并输出某位学生的成绩*/
{
float a[3][4]={{63,52,80,69},{80,56,88,73},{88,68,65,40}};
float *p[3],ager;
int n;
scanf("%d",&n);
p[0]=a[0];/*这个地方盘p是数组,是常量,不能被赋值,p[0]才是一个指针*/
ager=agev(p,12);
printf("ager=%5.2f\n",ager);
student_scor(p,n);
getchar();
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
出太阳了J
2010-07-21 · TA获得超过185个赞
知道小有建树答主
回答量:526
采纳率:0%
帮助的人:196万
展开全部
float all=0.0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式