PTA出租
出租
下面是新浪微博上曾經很火的一張圖:
一時間網上一片求救聲,急問這個怎麼破。其實這段程式碼很簡單,index陣列就是arr陣列的下標,index[0]=2 對應 arr[2]=1,index[1]=0 對應 arr[0]=8,index[2]=3 對應 arr[3]=0,以此類推…… 很容易得到電話號碼是18013820100。
本題要求你編寫一個程式,為任何一個電話號碼生成這段程式碼 —— 事實上,只要生成最前面兩行就可以了,後面內容是不變的。
輸入格式:
輸入在一行中給出一個由11位數字組成的手機號碼。
輸出格式:
為輸入的號碼生成程式碼的前兩行,其中arr中的數字必須按遞減順序給出。
輸入樣例:
18013820100
輸出樣例:
int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};
#include<stdio.h>
#include<string.h>
void del(char* a, int n);
void sort(char* a, int n);
int main(void){
int length;
char a[11],b[11];
for(int i=0;i<11;i++){
scanf("%c",&a[i]);
b[i]=a[i];
}
del(a,11);
length=strlen(a);
sort(a,length);
//printf("%d\n",length);
printf("int[] arr = new int[]");
for(int i=0;i<length;i++){
if(i==0)printf("\{%c",a[i]);
else printf(",%c",a[i]);
if(i==length-1)printf("\};\n");
}
printf("int[] index = new int[]");
for(int i=0;i<11;i++){
if(i==0)printf("\{");
for(int j=0;j<length;j++){
if(i<10&&b[i]==a[j])printf("%d,",j);
if(i==10&&b[i]==a[j])printf("%d",j);
}
}
printf("\};\n");
return 0;
}
void del(char* a, int n) {
int k=0;
for (int i = 0; i < n ; i++) {
for (int j = i + 1; j < n ; j++) {
if (a[i] == a[j])a[j] = '\0';
}
}
for (int i = 0; i < n; i++) {
if (a[i] != '\0')a[k++] = a[i];
}
a[k] = '\0';
}
void sort(char* a, int n) {
char temp;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (a[j] < a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
相關文章
- pta
- [PTA]day 7
- [PTA]day 9
- [PTA]day 2
- [PTA]day 5
- [PTA]day 3
- [PTA]day 1
- pta檢索
- PTA習題
- [PTA] day7
- PTA Hashing (25分)
- PTA甲級——Be Unique
- PTA——看電影
- pta兩次大作業
- PTA題目總結
- pta大作業總結
- PTA 2019-1-11
- 【PTA】查驗身份證
- 工位出租,資源配置平臺
- PTA7-8總結
- PTA三次作業
- 第二輪PTA作業
- PTA-1006—— Sign In and Sign Out
- PTA-7-82 列印沙漏
- L1-027 出租 分數 20
- 杭州辦公室出租,資源整合
- 7-8次PTA總結
- PTA作業7~8總結
- 23201814 第一輪PTA作業
- 對前三週pta總結
- 兩次pta題目總結
- 南昌航空大學pta總結
- 4~6次pta心得體會
- PTA4-6次作業
- PTA乙級 1004 成績排名
- PTA 檢查密碼 (15分)密碼
- PTA 7-1 老師生日
- PTA提交node.js程式碼Node.js