看到随机数跟文件就拿来练练手了
写的不是很简洁,希望以后能有所提高!
产生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);
}