一時間網上一片求救聲,急問這個怎麼破。其實這段**很簡單,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;
int index = new int;
大體思路:通過題目我們了解到,我們需要從乙個手機號,得到arr和index兩個陣列。我們先定義出arr,index和乙個比較陣列stu。我們遍歷字元陣列s(也就是手機號),如果stu[s[i]-『0』]==0的話,就證明s[i]-'0』這個數字還沒有出現過,我們就把它放到arr中去,並設stu[s[i]-『0』]=1,證明已經有了,再迴圈到這個數我們就不放到arr中去了,最終我們得到乙個陣列arr且陣列中沒有重複元素,經過qsort快排後,得到乙個降序的陣列arr。
第二步,我們通過遍歷s和arr陣列,找出s中每個元素在zrr中的下標即為index陣列中的元素。最後分別輸出就好了。
#include #include#includeint cmp(const void*a,const void*b)
int main();
int stu[100]=;
int index[100]=;
int a=0;
scanf("%s",s);
int len = strlen(s);
for(i=0;i
stu[s[i]-'0']=1;
} qsort(arr,a,sizeof(int),cmp);
// for(i=0;i
for(i=0;i
} }// for(i=0;i
printf("int arr = new int
printf("%d",arr[a-1]);
printf("};\n");
printf("int index = new int
printf("%d",index[len-1]);
printf("};");
return 0;
}
C語言 L1 027 出租 (20 分)
輸出樣例 int arr new int int index new int 思路 建立兩個陣列,arr陣列儲存 號碼 現的數字且按降序,index儲存 號碼的每一位數字在arr陣列中的位置 include intmain 判斷是否讀入過此數字 for int i 0 i 11 i a tell i...
L1 027 出租 20分 (C語言)
一時間網上一片求救聲,急問這個怎麼破。其實這段 很簡單,index陣列就是arr陣列的下標,index 0 2 對應 arr 2 1,index 1 0 對應 arr 0 8,index 2 3 對應 arr 3 0,以此類推 很容易得到 號碼是18013820100。本題要求你編寫乙個程式,為任何...
L1 027 出租 20分 C語言)
一時間網上一片求救聲,急問這個怎麼破。其實這段 很簡單,index陣列就是arr陣列的下標,index 0 2 對應 arr 2 1,index 1 0 對應 arr 0 8,index 2 3 對應 arr 3 0,以此類推 很容易得到 號碼是18013820100。本題要求你編寫乙個程式,為任何...