作业十一
---恢复内容开始---
#include<stdio.h> void sort(int a[],int n); int main() { int n,a[10]; int i; printf("Enter n(n<=10):"); scanf("%d",&n); printf("Enter a[%d]:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); printf("After sorted,a[%d]=",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-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }
二,查找指定元素
#include<stdio.h> int search(int list[100],int n,int x) { int i; for(i=0;i<=n;i++) { if(x==list[i]) printf("Index is %d\n",i); break; } if(x!=list[i]) printf("-1\n"); } int main() { int a[100],n,x,i; printf("输入元素的个数n:"); scanf("%d",&n); printf("输入数组:"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("输入待查找元素x:"); scanf("%d",&x); search(a,n,x); return 0; }
三报数
#include<stdio.h> int main(void) { int count,i,m,n,no; int num[100]; 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\n",no,*p); *p=0; count=0; } p++; if(p==num+n) p=num; } p=num; while(*p==0) p++; printf("The last one:%d\n",*p); }
总结
写作业的时侯电脑无限重启,还好这个有恢复功能。
一实参和形参都用指针变量
先使实参指针变量指向数组的首地址,然后将实参的值传给形参,通过指针变量值的改变可以使其指向数组的每个元素。
二形参,实参区别
定义时inta ,b,ab为形参
调用时add 1,2 1,2为实参
三实参用数组名,形参用指针变量
实参用数组名,形参用指针变量.
冒泡排序
对一个队列里的数据,挨个进行比较和交换,每次比较出一个当前最大或者最小的值放在队尾,然后继续下次比较,这样就跟冒泡一样,将最大或最小的数从底下“冒出来”,所以称为冒泡排序。
心得
好难,指针越来越搞不懂了,特别是冒泡排序。
---恢复内容结束---