C语言关于array的问题

[复制链接]
查看11 | 回复3 | 2011-2-23 06:51:23 | 显示全部楼层 |阅读模式
#define N 10.0
double x,k;
int m,l;
k=x/(2*N);
m=k;
bin[m]+=1;
for(l=1;l<=10000;l++)
{

fprintf(fp,"%d
%f\n",l,bin[l]);
}
在这里m的作用是将k转化成整数,用于bin的size,这是一种方法,然后我就得到相同的bin一共出现了多少次。但是这样会造成不精确。那么如何让bin[1],bin[2],bin[3].......照样出来,而bin[1]所代表的则是k的值。因为k不是整数,无法放入[ ]中。
在线等,可以问,可以加分。

回复

使用道具 举报

千问 | 2011-2-23 06:51:23 | 显示全部楼层
main(){ int i,j=0,a[10]; clrscr(); printf("please enter 10 numberes:\n"); for (i=0;i<10;i++)/*输入10个数*/
scanf("%d",&a);for (i=0;i<10;i++)
if (i!=4)/*将所以i的下标不为4(4代表已指向第5个元素)的元素重新存放到数组中*/
a[j++]=a;/*j用于存放结果和统计数*/printf("the numberes is:");for (i=0;i<j;i++)
printf("%3d",a
回复

使用道具 举报

千问 | 2011-2-23 06:51:23 | 显示全部楼层
这样的话建议可以先将所有k储存起来,例如bin[m++]=k,然后将bin[]数组先排序,再统计k出现的次数 不过这个方法个人感觉不是特别好,浪费存储空间不太清楚你的x是如何得到的,应该可以找到一定的关系的,然后通过这个关系应该可以比较简单的定位的吧
回复

使用道具 举报

千问 | 2011-2-23 06:51:23 | 显示全部楼层
如何让bin[1],bin[2],bin[3].......照样出来,而bin[1]所代表的则是k的值:fprintf(fp,"%d
%f\n",1,k);// 先输出k的值// 再从bin[2]开始输出for(l=2;l<=10000;l++){
fprintf(fp,"%d
%f\n",l,bin[l]);}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行