C語言實(shí)現(xiàn)數(shù)字游戲
本文實(shí)例為大家分享了C語言數(shù)字游戲的具體代碼,供大家參考,具體內(nèi)容如下
問題描述 :
現(xiàn)在,有許多給小孩子玩的數(shù)字游戲,這些游戲玩起來簡(jiǎn)單,但要?jiǎng)?chuàng)造一個(gè)就不是那么容易的了。 在這,我們將介紹一種有趣的游戲。
你將會(huì)得到N個(gè)正整數(shù),你可以將一個(gè)整數(shù)接在另一個(gè)整數(shù)之后以制造一個(gè)更大的整數(shù)。 例如,這有4個(gè)數(shù)字123, 124, 56, 90,他們可以制造下列整數(shù)─ 1231245690, 1241235690, 5612312490, 9012312456, 9056124123…等,總共可以組合出24(4!)種數(shù)字。 但是,9056124123是最大的那一個(gè)。
你可能會(huì)想這是個(gè)簡(jiǎn)單的事情,但對(duì)剛有數(shù)字概念小孩來說,這會(huì)是個(gè)簡(jiǎn)單的任務(wù)嗎?
輸入說明 :
輸入含有多組測(cè)試數(shù)據(jù)。
每組測(cè)試資料兩行,第一行為一個(gè)正整數(shù)N(N<= 50),第二行將有N 個(gè)正整數(shù)。
當(dāng)N=0代表輸入結(jié)束。
輸出說明 :
對(duì)每一組測(cè)試數(shù)據(jù),輸出一行,輸出利用這N個(gè)整數(shù)可結(jié)合成的最大整數(shù)。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[51][1000];//輸入的數(shù)用全局變量來操作,和他之后的數(shù)一個(gè)一個(gè)去比較,交換位置
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]);//數(shù)的長(zhǎng)度
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]='\0';
return strcmp(b,c);//看a[i]a[j]大還是a[j]a[i]的數(shù)比較大
}
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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的掃雷游戲
掃雷是電腦上很經(jīng)典的游戲,特意去網(wǎng)上玩了一會(huì),幾次調(diào)試之后,發(fā)現(xiàn)這個(gè)比三子棋要復(fù)雜一些,尤其是空白展開算法上和堵截玩家有的一拼,與實(shí)際游戲差別較大,不能使用光標(biāo),下面來詳解每一步分析2021-10-10

