智慧車第一次任務
阿新 • • 發佈:2018-12-02
2、 初試排序 輸入不超過 100 個整數,
排序並去除重複數字之後輸出。
輸入格式:第一行為輸入的數字個數,第二行為全部數字(使 用空格間隔)
輸出格式:直接輸出全部數字(使用空格間隔) 要求: 排序使用氣泡排序和快速排序實現,提交兩份程式碼
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int i, j, a[100], t; 6 int n; 7 scanf("%d",&n); 8 for(i = 0; i < n; i++)9 scanf("%d",&a[i]); 10 for(i = 0; i < n-1; i++) 11 for(j = 0; j < n-i-1; j++) 12 if(a[j] > a[j+1]) 13 { 14 t = a[j]; 15 a[j] = a[j+1]; 16 a[j+1] = t; 17 } 18 for(i = 0; i < n; i++) 19 for(j = i+1; j < n; j++)20 if(a[i] == a[j]) 21 a[i] = 0; 22 for(i = 0; i < n; i++) 23 if(a[i]) 24 printf("%d ",a[i]); 25 26 }
快排
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 void quicksort(int a[], int p, int q); 6 intn, a[100], i; 7 scanf("%d",&n); 8 for(i = 0; i < n; i++) 9 scanf("%d",&a[i]); 10 quicksort(a,0,n-1); 11 for(i = 0; i < n; i++) 12 printf("%d ",a[i]); 13 14 } 15 void quicksort(int *a, int p, int q) 16 { 17 int i = p, j = q; 18 int temp = a[p]; 19 while(i < j) 20 { 21 while(a[q] >= temp && i < j) 22 j--; 23 if(i < j) 24 { 25 a[i] = a[j]; 26 i++; 27 } 28 while(a[p] <= temp && i < j) 29 i++; 30 if(i < j) 31 { 32 a[j] = a[i]; 33 j--; 34 } 35 } 36 a[i] = temp; 37 if(p < i-1) quicksort(a,p,i-1); 38 if(j+1 < q) quicksort(a,j+1,q); 39 }
5、 遞迴初試 使用遞迴演算法計正整數 n 和 m 的最大公約數。
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int f(int m,int n); 6 int n,m; 7 scanf("%d %d",&m,&n); 8 printf("%d",f(m,n)); 9 return 0; 10 11 } 12 int f(int m,int n) 13 { 14 if(n == 0 && m >n) 15 return m; 16 else if(m > n) 17 return f(n,m%n); 18 else 19 return f(n,m); 20 21 }
1、句子反轉 給定一個句子(只包含字母和空格),
將句子中的單詞位置反 轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。
比如:(1)“hello xiao mi”-> “mi xiao hello” 輸入描述: 輸入資料有多組,每組佔一行,包含一個句子(句子長度小於 1000 個字元)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int main() 5 { 6 char a[10][10], b[10]; 7 int i, j, n; 8 scanf("%d",&n); 9 for(i = 1; i <= n; i++) 10 scanf("%s",a[i]); 11 i = 1; j = n; 12 while(j > i) 13 { 14 strcpy(b,a[i]); 15 strcpy(a[i],a[j]); 16 strcpy(a[j],b); 17 i++;j--; 18 for(int x=0;x < 10 ;x++) 19 b[x] = '\0'; 20 } 21 for(i = 1; i <= n; i++) 22 printf("%s ",a[i]); 23 }
輸出描述: 對於每個測試示例,要求輸出句子中單詞反轉後形成的句子