结果不对

来源:百度知道 编辑:UC知道 时间:2024/05/03 02:09:24
#include "stdio.h"
main()
{
int a[28],b,c,j[3]={12,13},i;
float k;
for(i=1;i>0;i++)
{
scanf("%d",&c);
a[c]=c;
j[3]=j[2]-j[1];
j[2]++;
k=a[c]/j[3];
printf("%d\n",k);
}
}

这段代码运行后,结果都是0或负数..怎么改??
呵呵 我这段代码在另一个程序中有用.所以拿简略版的出来 二楼的答案对了只对了一半啊 改成j[2]=j[1]-j[0]后答案还是0;

#include "stdio.h"
void main()
{
int a[28],b,c,j[3]={12,13},i;
float k;
for(i=1;i>0;i++)
{
scanf("%d",&c);
a[c]=c;
j[2]=j[1]-j[0]; //根本没j3
j[1]++;
k=float(c)/j[2]; //不明白你干什么,直接用c不久的了
printf("%f\n",k);
}
}

你这代码想干啥?

不管你想要用这段代码完成什么功能,由于定义的数组
j[3]只有三项元素,所以其中最后一个元素应该j[2](前两项分别是j[0]和j[2]),但是你误以为最后一个元素是j[3],并以此来计算,故出错.要想在代码中出现j[3],定义的时候必须定义为j[4]或者更大.