满意答案
#include
#define NUM 1000 /*这只是自定义一个尽量大的数作为数组的个数,简单点,也可以
选择用malloc定义*/
int in_data(float *,float *);
void out_list(float *,float *,int);
int main()
{
int c,i,j;
float p1[NUM]={0};
float p2[NUM]={0};
printf("请输入若干西瓜的实际重量和猜测重量,以-1为结束标记:\n");
j=in_data(p1,p2);
out_list(p1,p2,j);
return 0;
}
int in_data(float *pa,float *pb)
{
int i,n;
int j;
j=0;
for(i=0;;i++)
{
scanf("%f",&pa[i]);
if (pa[i]!=-1) {
j++;
}else {
break ;
}
scanf("%f",&pb[i]);
}
return j;
}
void out_list(float *pc,float *pd,int i)
{
float c[i],d[i];
int l,j,k;
for(l=0;l
c[l]=*(pd+l)-*(pc+l);
for(j=0;j
d[j]=100*c[j]/pc[j];
printf("西瓜编号 实际重量 猜测重量 绝对误差 相对误差\n");
for(k=0;k
{
printf("西瓜%d",k+1);
printf("%19.4fkg",*(pc+k));
printf("%15.4fkg",*(pd+k));
printf("%15.4fkg",c[k]);
printf("%15.4f%%",d[k]);
printf("\n");
}追问: 我的代码是哪里错呢
追答:1:main里少return 0,
2:in_date里不需要再定义数组a和b,输入实际质量后判断一下,如果为-1,就不需要再输入了
3:void那个函数里d[j]=100*c[j]/(pc+j)中pc+j改成pc[j],输出里pc+k和pd+k前面加*号
大概就记得这么多。
这是根据你的代码改的,你对着看一下哪里不同就好了,我也是刚学没多久,除了大概格式具体看不出哪里为什么不对,有需要可以用编译器调试一下就知道了
追问: main为什么要return 0呢
追答:如果是 void main,那么就不需要返回值。
如果是 int main,那么需要 return 一个值。这个值一般是 0,表示没有出现异常情况正常返回。当然也可以 return -1 或者其他值,返回非零值表示主函数执行过程中的异常情况。具体什么数字代表什么异常,可由编程者自己定义
追问: 能给个联系方式不
追答:sum1没值,我这炸了,没找到
追问: 我还有问题
追答:你的sum1定义了,但是没初值,
右边的sum1没值
具体调试看看
追问: 这到底是为什么
追答:无能为力-_-,这我真不知道,要不代码发全了我在电脑上试试?
追问: 你看
追问: 一样的耶
追问: 我加了
追问: 是风铃吗
追问: what
追问: 明白了
追问: 我试一下
追问: 还是不行
追问: 我是刚才那个你给的函数
追问: 我又加了
追问: 一个函数
追问: 大哥你微信多少
追问: 微信多少呢大哥
追问: 还在吗
追问: 😞
追问: 上面我发了
追问: 那个代码
追问: 你怎么还不加我
追问: 加我加我
追问: 咦
追问: 我用小号
追问: 又加了你
追问: 你看看
00分享举报