C语言:高手请进,对你来说很简单

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:47:46
部分:
#include<stdio.h>
#include<math.h>
void main()
{
float y[9]={3.48,3.22,3.05,2.91,2.73,2.6,2.52,2.40,2.32};
float z[9]={12,14,16,18,22,26,30,40,50};
float x[9];
float s[3];
float t[2];
float a0,a1;
int i,k,l;

for(i=0;i<9;i++)
x[i]=1/z[i];
为什么x0[],x[1].....算出来都是0?
顺便问一句,输出结果为-NAN是什么意思?

因为整数和整数相除只取商,余数不管,例如:1/2,商0,所以结果是0,3/2,商1,结果是1.你要把最后一段代码这样写:x[i]=1.0/(float)z[i];进行强制类型转换,转换为FLOAT型的,就可以了;

what?
it works well

#include<stdio.h>
#include<math.h>
void main()
{
float y[9]={3.48,3.22,3.05,2.91,2.73,2.6,2.52,2.40,2.32};
float z[9]={12,14,16,18,22,26,30,40,50};
float x[9];
float s[3];
float t[2];
float a0,a1;
int i,k,l;

for(i=0;i<9;i++)
{
x[i]=1/z[i];
printf("%f\n",x[i]);
}
}

---------- Run ----------
0.083333
0.071429
0.062500
0.055556
0.045455
0.038462
0.033333
0.025000
0.020000

Output completed (0 sec consumed) - Normal Termination

你用的编译系统是什么?