您好,登錄后才能下訂單哦!
這篇文章主要介紹“C語言怎么實現24點數字游戲”,在日常操作中,相信很多人在C語言怎么實現24點數字游戲問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言怎么實現24點數字游戲”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
問題描述 :
現在,有許多給小孩子玩的數字游戲,這些游戲玩起來簡單,但要創造一個就不是那么容易的了。 在這,我們將介紹一種有趣的游戲。
你將會得到N個正整數,你可以將一個整數接在另一個整數之后以制造一個更大的整數。 例如,這有4個數字123, 124, 56, 90,他們可以制造下列整數─ 1231245690, 1241235690, 5612312490, 9012312456, 9056124123…等,總共可以組合出24(4!)種數字。 但是,9056124123是最大的那一個。
你可能會想這是個簡單的事情,但對剛有數字概念小孩來說,這會是個簡單的任務嗎?
輸入說明 :
輸入含有多組測試數據。每組測試資料兩行,第一行為一個正整數N(N<= 50),第二行將有N 個正整數。當N=0代表輸入結束。
輸出說明 :
對每一組測試數據,輸出一行,輸出利用這N個整數可結合成的最大整數。
#include<stdio.h>#include<string.h>#include<stdlib.h>char a[51][1000];//輸入的數用全局變量來操作,和他之后的數一個一個去比較,交換位置 int cmp(int x,int y){ char b[1000],c[1000],str[1000]; int i,num1,num2; strcpy(b,a[x]); strcpy(c,a[y]); num1=strlen(a[x]);//數的長度 num2=strlen(a[y]); //字符串拼接 for(i=num1;i<=num1+num2;i++) b[i]=c[i-num1]; for(i=num2;i<num1+num2;i++) c[i]=b[i-num2]; c[i]=''; return strcmp(b,c);//看a[i]a[j]大還是a[j]a[i]的數比較大 } int main(){ int n,i,j; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++) scanf("%s",a[i]); char temp[1000]; for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(cmp(i,j)<0){//交換位置 strcpy(temp,a[i]); strcpy(a[i],a[j]); strcpy(a[j],temp); } } } for(i=0;i<n;i++) printf("%s",a[i]); printf("\n"); } return 0; }
到此,關于“C語言怎么實現24點數字游戲”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。