1.编写函数判断用户输入的字符是否是对称的字符串(即顺读和倒读都一样的字符串)。例如“XYZYX”和“xyzzyx”都是对称的。
#include <stdio.h> #include <stdlib.h> int main() { int f,i=0,a[100],n,j; char x; do { i++; x=getchar(); a[i]=(int)(x); } while(a[i]!=10); n=i; if(n==3||n==4) { if(a[n-1]==a[1]) goto END1; else goto END2; } for(j=1; f&&j<=(n/2); j++) { f=0; if(a[j]==a[n-j]) f=1; } if((float)j>=((float)(n)/2)) END1:printf("Yes\n"); else END2:printf("No\n"); return 0; }
2. 编写函数用冒泡排序法将用户输入的若干个数(或学生姓名)按升序排序。
#include <stdio.h> int main() { int a[10]; int i,j,temp; for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) { if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } for(i=0; i<10;i++) printf("%d,",&a[i]); printf("\n"); 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[11],n,i,j; printf("输入10个数:"); for(i=1;i<=10;i++) scanf("%d",&a[i]); for(i=2;i<=10;i++) { a[0]=a[i]; for(j=i-1;a[j]>a[0];j--) a[j+1]=a[j]; a[j+1]=a[0]; } for(i=1;i<=10;i++) printf("%d ",a[i]); printf("\n"); return 0; }
到网上百度了好多...还问了好多同学..无论怎样终于把作业写出来了.感谢
时间: 2024-10-26 14:14:34