L1 027 出租 20分 C語言

2021-10-10 23:07:40 字數 1362 閱讀 3918

一時間網上一片求救聲,急問這個怎麼破。其實這段**很簡單,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。本題要求你編寫乙個程式,為任何...