关于随机数组的C语言输出程序

来源:百度知道 编辑:UC知道 时间:2024/06/19 02:27:09
main()
{double a[11],b[8];
int i;
randomize();

for(i=1;i<11;i++)
{a[i]=random(1000);a[i]/=1000;printf("%d\t",a[i]);} /*0-l间随机数,3位小数,a[0]不使用*/
b[0]=(a[1]+a[2]+a[3])/3;
b[1]=(a[1]+a[2]+a[6])/3;
b[2]=(a[1]+a[5]+a[3])/3;
b[3]=(a[4]+a[2]+a[3])/3;
b[4]=(a[1]+a[5]+a[6])/3;
b[5]=(a[4]+a[2]+a[6])/3;
b[6]=(a[4]+a[5]+a[3])/3;
b[7]=(a[4]+a[5]+a[6])/3;

for(i=0;i<8;i++)
printf("%d\n",b[i]);
}

请问大家,这个程序有什么错误么?为什么我跳时不出错误,但无法看到运行结果呢?
前边已有:#include<stdlib.h>
#include<stdio.h>

#include<stdlib.h>
#include <time.h>//需要添加的头文件
#include<stdio.h>
main()
{double a[11],b[8];
int i;
srand((unsigned)time( NULL )); //这样定义随机函数
for(i=1;i<11;i++)
{a[i]=rand()%1000;//生成一个小于1000的整数
a[i]/=1000.0;//将它化为0-1间的小数,如果用1000会让他的结果为整数
printf("%.3f\t",a[i]);} //0-l间随机数,3位小数,a[0]不使用(你用%d,错了保留3为小数,.3)
b[0]=(a[1]+a[2]+a[3])/3;
b[1]=(a[1]+a[2]+a[6])/3;
b[2]=(a[1]+a[5]+a[3])/3;
b[3]=(a[4]+a[2]+a[3])/3;
b[4]=(a[1]+a[5]+a[6])/3;
b[5]=(a[4]+a[2]+a[6])/3;
b[6]=(a[4]+a[5]+a[3])/3;
b[7]=(a[4]+a[5]+a[6])/3;
for(i=0;i<8;i++)
printf("%.3f\n",b[i]);
while(1);//停住程序,让他不跳回后台,让你看到结果
}
在DEVC++上编译通过

最明显的错误一,定义double 类型的b[8];
却用浮点数输出printf("%f\n",b[i])
应该是用双浮点输出 printf("%lf\n",b[i]);
我是VC++ 6.0 ,估计工具和你不一样

还有printf("%d\t",a[i]);
一样的错误