標籤:turn code print [] pre char return 編寫 冒泡排序
1.編寫函數判斷使用者輸入的字元是否是對稱的字串(即順讀和倒讀都一樣的字串)。例如“XYZYX”和“xyzzyx”都是對稱的。
#include<stdio.h>int main(){ char str[100]; int i=0,a,b,j,k; gets(str); while(str[i]!=‘\0‘) i++; if(i%2==0) { a=i/2-1;b=i/2; } else { a=i/2-1;b=i/2+1; } for(j=a,k=b;j>=0,k<=i;j--,k++) { if(str[j]!=str[k]) break; } if(k==i+1) printf("Yes\n"); else printf("No.\n");}
2. 編寫函數用冒泡排序法將使用者輸入的若干個數(或學生姓名)按升序排序。
#include <stdio.h>#include <string.h>void f1(){ char a[100]; int length,j,i,temp; printf("請輸入:"); scanf("%s",a); length=strlen(a); for(j=0;j<length;j++) { for(i=length-1;i>0;i--) { if(a[i]<a[i-1]) { temp=a[i]; a[i]=a[i-1]; a[i-1]=temp; } } } printf("將其升序排序為:"); for(i=0;i<length;i++) printf("%c",a[i]); }int main(){ f1(); return 0;}
3. 編寫函數用選擇排序法將使用者輸入的若干個數(或學生姓名)按升序排序。
#include<stdio.h>int max(int a[]){ int i,j,t; for(i=0;i<10;i++) for(j=i+1;j<10;j++) if (a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; }}int main(){ int a[10],i; printf("輸入十個數字:"); for(i=0;i<10;i++) scanf("%d",&a[i]); max(a); for(i=0;i<10;i++) printf("%d ",a[i]); return 0; }
4. 編寫函數用插入排序法將使用者輸入的若干個數(或學生姓名)按升序排序。
#include<stdio.h>int main(){ int a[100]; int i,temp,j; printf("請輸入:"); scanf("%d",a); for(i=1;i<100;i++) { temp=a[i]; j=i-1; while(j>=0&&temp<a[j]) { a[j*1]=a[j]; j--; } a[j*1]=temp } printf("升序排序為:")}
我儘力了,真的。
C語言第9次作業