首页 > 代码库 > 作业十一
作业十一
#include<stdio.h> void sort(int a[],int n); int main() { int n,a[5]; int i; printf("Enter n(n<=5):"); 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[],int n,int x); int main() { int n,x,list[5]; int i; printf("Input n:"); scanf("%d",&n); printf("Input %d integers:",n); for(i=0;i<n;i++) scanf("%d",&list[i]); printf("Input x:"); scanf("%d",&x); search(list,n,x); if(search(list,n,x)!=-1) printf("mid=%d\n",search(list,n,x)); else printf("-1\n"); return 0; } int search(int list[],int n,int x) { int i; for(i=0;i<n;i++) { if(x==list[i]) return i; else return -1; } }
三报数、
#include<stdio.h> int main(void) { int count,i,m,n,no; int num[90]; 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("最后的人:%d\n",*p); }
知识点
一实参为指针变量,形参为数组名
设p为指针变量,令p=&a[0],p为实参,对应的形参x为数组名,则函数调用时将p的值传给形参数组名x,也就是使其取得a数组的首地址,使x数组和a数组共用一段内存单元
二
·数组名可以使用指针形式,而指针变量也可以转换为数组形式。
三
对一个队列里的数据,挨个进行比较和交换,每次比较出一个当前最大或者最小的值放在队尾,然后继续下次比较,这样就跟冒泡一样,将最大或最小的数从底下“冒出来”,所以称为冒泡排序
四
数组的基地址是在内存中存储数组的起始位置,它是数组中第一个元素(下标为0)的地址,因此数组名本身是一个地址即指针值。
五
传递的是实参数组首地址,形参与实参共用同一段内存单元
作业十一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。