产生随机组丢到txt中

         看到随机数跟文件就拿来练练手了

         写的不是很简洁,希望以后能有所提高!

         产生7个随机数,数和为100,随机数要求在5-40间产生,本程序没有实现这个数据范围的控制,还没有想到比较好的办法。

         随后输出这个数组到新建的txt文件(可以多组输出)。


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>

#define  max  40

float *rand_num(float *b)
{

    int     a[7];
    float   sum=0;
    int i=0;	
    for(i=0;i<7;i++)
	   {
	      a[i] = 5 + rand() % max;
	      sum+=a[i];
	   }
    for(i=0;i<7;i++)
	    b[i]=a[i]*100/sum;
    
	for(i = 0 ; i < 7 ; i++)
	{
	    printf("%f\t",b[i]);
	}
	printf("\n");
	return b;
}

void main()
{
   float *b,*a;
   int i=0,j;
   int n;
   int flag=0;

   FILE  *fp;
   fp=fopen("sum100.txt","w"); 
   b=(float*)malloc(sizeof(float)*7);
   a=(float*)malloc(sizeof(float)*7);
   printf("输入随机数组组数:\n");
   scanf("%d",&n);
   getchar();
   srand((unsigned)time(NULL));
   for(i=0;i<n;i++)
   { 
	   a=rand_num(b);
       for(j=0;j<7;j++)
	   {
    	   fprintf(fp,"%f\t",a[j]);  
	       flag++;
	       if(flag==7)
		   {
		       fprintf(fp,"\r\n");
			   flag=0;
			}		
		}
   }  
   getchar();
   fclose(fp);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值