c语言编程随机生成号码,随机生成若干个电话号码解决方法

该程序演示了如何在C语言中生成随机电话号码并将其写入文件。通过修改代码,使得电话号码生成可以在循环中进行,并将每个生成的号码写入文件。同时,注意到`srand`函数的使用位置,确保每次生成的随机数序列不同。
摘要由CSDN通过智能技术生成

随机生成若干个电话号码

#include

#include

#include

#include

#include

struct Stu{

unsigned long ID;

char name[7];

char num[13];

};

void setId(char *tel_obj) //n的值暂未使用

{

int i; //用来给电话号码依次赋值

char tel_num[10]={'0','1','2','3','4','5','6','7','8','9'};

char tel_link[10];

strcpy(tel_obj,"13");

srand((unsigned)time(NULL));

for(i=0;i<9;i++)

{

tel_link[i]=tel_num[rand()%10];

}

tel_link[9]='\0';

strcat(tel_obj,tel_link);

puts(tel_obj);

}

int main()

{

FILE *fp;

int i;

char tel_obj[12];

char* p=&tel_obj[12];

char *tel;

fp=fopen("sun.txt","w");

//  for(i=0;i<10;i++)  为什么不能循环呢?

setId(p);

fclose(fp);

return 0;

}

------解决方案--------------------

#include

#include

#include

#include

#include

struct Stu{

unsigned long ID;

char name[7];

char num[13];

};

void setId(char *tel_obj) //n的值暂未使用

{

int i; //用来给电话号码依次赋值

char tel_num[10]={'0','1','2','3','4','5','6','7','8','9'};

char tel_link[10];

strcpy(tel_obj,"13");

srand((unsigned)time(NULL));

for(i=0;i<9;i++)

{

tel_link[i]=tel_num[rand()%10];

}

tel_link[9]='\0';

strcat(tel_obj,tel_link);

puts(tel_obj);

}

int main()

{

FILE *fp;

int i;

char tel_obj[12];

char* p=tel_obj;//改这行取数组的开头地址。

char *tel;

fp=fopen("sun.txt","w");

for(i=0;i<10;i++)

{

setId(p);

fprintf(fp, "%s\n", p);//写入文件

}

fclose(fp);

return 0;

}

------解决方案--------------------

srand((unsigned)time(NULL)); 这句最好放在主函数里面,否则随机的数据几乎是一样的。

------解决方案--------------------

参考C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\rand.c

/***

*rand.c - random number generator

*

*       Copyright (c) Microsoft Corporation. All rights reserved.

*

*Purpose:

*       defines rand(), srand() - random number generator

*

*******************************************************************************/

#include 

#include 

#include 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值