写一个生成数据的程序: 生成input.ifo文件(文件格式可以是文本文件,也可以是二进制文件),包含30个人名字(字符串:自己名字+随机编号,要求名字不同,随机编号用随机数生成,并保证不同) c语言
时间: 2024-02-11 21:06:41 浏览: 173
好的,以下是一个C语言程序,可以生成一个名为input.ifo的文本文件,其中包含30个人名字(字符串:自己名字+随机编号,要求名字不同,随机编号用随机数生成,并保证不同)。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NUM_ROWS 30
char *names[] = {"Alice", "Bob", "Charlie", "David", "Eva", "Frank", "Grace", "Henry", "Ivy", "Jack"};
int main()
{
// 打开文件
FILE *fp;
fp = fopen("input.ifo", "w");
if (fp == NULL)
{
printf("Error opening file!\n");
exit(1);
}
// 随机数种子
srand(time(NULL));
// 生成数据
char full_name[20];
int used_numbers[NUM_ROWS];
memset(used_numbers, 0, sizeof(used_numbers));
for (int i = 0; i < NUM_ROWS; i++)
{
// 随机选择一个名字
int name_index = rand() % 10;
char *name = names[name_index];
// 生成一个随机编号
int number = rand() % 10000 + 1;
// 将名字和编号组合成字符串
sprintf(full_name, "%s%d", name, number);
// 检查是否重复
while (used_numbers[number])
{
number = rand() % 10000 + 1;
sprintf(full_name, "%s%d", name, number);
}
used_numbers[number] = 1;
// 写入文件
fprintf(fp, "%s\n", full_name);
}
// 关闭文件
fclose(fp);
return 0;
}
```
这个程序会在当前目录下生成一个名为input.ifo的文件,其中包含30个人名字(字符串:自己名字+随机编号,要求名字不同,随机编号用随机数生成,并保证不同)。每行一个名字。您可以根据需要修改这些参数来生成不同的数据。
阅读全文