① c語言 隨機產生10個手機號,不能重復。輸入英文名後綁定手機號,一個名字一個手機號
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
constintPHONE_LENGTH=11;
constchar*PREFIX="139";
typedefstruct{
intavailable;
charnumber[PHONE_LENGTH+1];
charowner_name[31];
}PhoneNumber;
voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix);
voiddisplayPhoneNumber(PhoneNumber*phones,intsize);
intmain(void)
{
chartname[31];
intid;
PhoneNumberphones[10];
phoneNumberGenerator(phones,10,PREFIX);
displayPhoneNumber(phones,10);
while(1)
{
puts("請輸入您的姓名");
scanf("%s",tname);
puts("請輸入您喜歡號碼的編號");
scanf("%d",&id);
if(phones[id].available)
{
strcpy(phones[id].owner_name,tname);
phones[id].available=0;
displayPhoneNumber(phones,10);
}else
{
puts("此號已被佔用,請選擇其他的號碼");
}}return0;
}
voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix)
{
intrepeat;//重復標志變數
for(inti=0;i<size;++i)
{
strncpy(phones[i].number,prefix,strlen(prefix));//復制號碼前綴
phones[i].available=1;//初始化號碼為可用
strcpy(phones[i].owner_name,"unknow");//初始化號碼的擁有著為"unknow"//開始產生號碼
do{
repeat=0;
/*******************產生一個隨機號碼******************/
for(intj=strlen(prefix);j<PHONE_LENGTH;++j)
{
(phones[i].number)[j]=rand()%10+'0';
}
(phones[i].number)[PHONE_LENGTH]='