當前位置:首頁 » 編程語言 » c語言彩

c語言彩

發布時間: 2023-09-24 07:07:05

c語言 實現模擬彩票的程序設計:隨機產生7個數字(用C語言隨機函數產生,[1,33]區間,七個數互

使用結構體鏈表模擬彩票的搖獎機,來保證每次隨機都是不同的數字。

數組也可以模擬,但是刪除元素比較麻煩,用鏈表更快捷。

定義數組指針,動態分配內存。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedefstructList{
intnumber;
structList*next;
}ArrayList;
ArrayList*createList(int);//創建鏈表,參數是鏈表的節點數
voidfreeList(ArrayList*);//循環釋放所有節點的內存
intdeleteNode(ArrayList*,int);//刪除節點,返回節點的數據
main(){
//動態創建內存
int*numbers=(int*)calloc(7,sizeof(int));
int*inNumbers=(int*)calloc(7,sizeof(int));
//動態創建數組鏈表存放1-33個編號
ArrayList*balls=createList(33);
inti;
srand((unsigned)time(NULL));
printf("請輸入7個不同的數字(1-33): ");
for(i=0;i<7;i++){
*(numbers+i)=deleteNode(balls,rand()%(33-i));
scanf("%d",inNumbers+i);
}
printf("隨機產生的7個數字是: ");
for(i=0;i<7;i++){
printf("%d",*(numbers+i));
}
printf(" 相同的數字: ");
//查找
intj;
for(i=0;i<7;i++){
for(j=0;j<7;j++){
if(*(numbers+i)==*(inNumbers+j)){
printf("%d",*(numbers+i));
break;
}
}
}
//釋放內存
free(numbers);
free(inNumbers);
freeList(balls);
}
ArrayList*createList(intn){
ArrayList*head=NULL,*end=NULL,*node=NULL;
end=head=(ArrayList*)malloc(sizeof(ArrayList));//head在刪除和插入節點時有用。不能刪除head,也不能插入到head前面
inti;
for(i=1;i<=n;i++){
node=(ArrayList*)malloc(sizeof(ArrayList));
node->number=i;
end->next=node;
end=node;
}
end->next=NULL;
returnhead;
}
voidfreeList(ArrayList*head){
ArrayList*node=head;
while(head!=NULL){
head=head->next;
free(node);
node=head;
}
}
intdeleteNode(ArrayList*head,intindex){//index節點索引(0-32),返回被刪除的球的編號
ArrayList*node=head->next,*temp=head;
inti=0,number;
while(i<index&&node!=NULL){
temp=node;
node=node->next;
i++;
}
if(node!=NULL){
number=node->number;
temp->next=node->next;
free(node);
}
returnnumber;
}

運行結果

Ⅱ 用c語言寫一個彩票55選5的代碼,怎麼寫

C語言不了解不過思路這樣

用隨即函數產生一個數字
然後做個IF從句再產生一個,和前1個比,一樣的話就再循環再產生一個

總之產生一個數就和前面的所有數字相比,看看有沒有一樣的有一樣的就再循環產生

流程圖

AA:I=I+1

BB:產成一個數

CC: 保存到數組A(I)

DD:如果I不等於1(第一次沒的比),則比較A(I)和(1)~(I-1)數組中的有無相同(這里用FOR語句循環)

EE:有則跳轉到BB,無則跳轉到AA(這里了解FOR的話可以用FOR,不了解的話可以用IF GOTO代替)

Ⅲ c語言彩票兌獎程序

#include<stdio.h>
voidmain()
{
inta[]={1,2,3,4,5,6,7};
intb[7],i,j,count=0,max=0,maxflag;
for(i=0;i<7;i++)
scanf("%d",&b[i]);
i=0;
while(i<7)
{
j=0;
count=0;
if(b[i]==a[j])
while(i<7&&j<7&&b[i]==a[j])i++,j++,count++;
else
i++;
if(max<count){max=count;maxflag=i;}
}
count=max;
if(count==7)printf("特等獎 ");
elseif(count==6)
{
if(maxflag==7)
printf("二等獎 ");
else
printf("一等獎 ");

}
elseif(count==5)
{
if(maxflag==7)
printf("三等獎 ");
else
printf("二等獎 ");
}
elseif(count==4)
{
if(maxflag==7)
printf("四等獎 ");
else
printf("三等獎 ");
}
elseif(count==3)
{
if(maxflag==7)
printf("五等獎 ");
else
printf("四等獎 ");
}
elseif(count==2&&maxflag!=7)
printf("五等獎 ");
else
printf("沒中獎 ");

}

熱點內容
預編譯的作用是什麼 發布:2025-02-01 17:44:52 瀏覽:738
蘋果電腦打不開壓縮文件 發布:2025-02-01 17:39:47 瀏覽:967
無人機存儲櫃子 發布:2025-02-01 17:39:45 瀏覽:199
shell腳本編寫刪除修改 發布:2025-02-01 17:38:05 瀏覽:118
wifi連接伺服器678怎麼回事 發布:2025-02-01 17:29:10 瀏覽:261
自動編譯小說軟體 發布:2025-02-01 17:23:19 瀏覽:185
滑鼠側鍵編程 發布:2025-02-01 17:14:51 瀏覽:66
bs源碼 發布:2025-02-01 16:51:52 瀏覽:568
百度雲zip怎麼解壓 發布:2025-02-01 16:31:59 瀏覽:567
pmc密碼是什麼意思 發布:2025-02-01 16:28:49 瀏覽:784