1.冒泡法进行排序。要求自定义一个函数实现用冒泡法对整数数组进行简单排序。
#include<Stdio.h> int main() { int i,n,a[10]; void sort(int a[],int n); printf("Input n(n<10):"); scanf("%d",&n); printf("Input a[%d]:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); for(i=0;i<n;i++) printf("%3d",a[i]); return 0; } void sort(int a[],int n) { int i,j,t; for(i=1;i<n;i++) for(j=0;j<n-1;j++) if(a[j]>a[i]){ t=a[j]; a[j]=a[i]; a[i]=t; } }
测试截图:
2.在数组中查找指定元素:
#include<Stdio.h> int main() { int n,list[10],num,x,i,item; int search(int list[],int n,int x); printf("Input n:"); scanf("%d",&n); printf("Input list[%d]:",n); for(i=0;i<n;i++) scanf("%d",&list[i]); printf("search:"); scanf("%d",&x); num=search(list,n,x); if(num!=-1) printf("%d",num); else if(num==-1) printf("Not find!"); return 0; } int search(int list[],int n,int x) { int i,num; for(i=0;i<n;i++){ if(x==list[i]) return i; } if(x!=list[i]) return -1; }
测试截图:
3.报数游戏:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。输入整数n和m,并按退出顺序输出退出圈子的人的编号 。
#include<stdio.h> int main(void) { int count,i,m,n,no; int num[50]; int *p; printf("enter n,m:"); scanf("%d%d",&n,&m); for(i=0;i<n;i++) num[i]=i+1; p=num; count=no=0; while(no<n-1) { if(*p!=0)count++; if(count==m) { no++; printf("退出的人%d:%d ",no,*p); *p=0; count=0; } p++; if(p==num+n) p=num; } p=num; while(*p==0) p++; printf("最后一个人:%d ",*p); }
测试截图: