第一题
#include<stdio.h> void sort(int a[],int n); int main() { int n,a[8]; int i; printf("Enter n(n<=8):"); 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 i; for(i=0;i<n;i++) if(list[i]==x) return i; return -1; } int main(void) { int list[10],n,x,i; printf("enter a n(1<=n<=10):"); scanf("%d",&n); printf("enter %d numbes: ",n); for(i=0;i<n;i++) scanf("%d",&list[i]); printf("enter x:"); scanf("%d",&x); if(search(list,n,x)==-1) printf("no found!! "); else printf("脚标为%d ",search(list,n,x)); }
第三题
#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); }
1.指针 数组和地址间的关系
·数组的基地址是在内存中存储数组的起始位置,它是数组中第一个元素的地址,因此数组名本身是一个地址即指针值。
·指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址,可以把它看作是常量指针
2.数组名作为函数的参数
3.字符串和字符指针
·如果定义一个字符指针接收字符串常量的值,该指针就指向字符串的首字符。这样,字符数组和字符指针都可以用来处理字符串
4.常用的字符串处理函数
·字符串的输入和输出:函数scanf()和gets()可用来输入字符串,而printf()和puts()输出字符串。它们在系统文件stdio.h中定义
二、实验过程中遇到的问题及解决方法
对于指针变量不熟悉,同学交我打的(要多看看书,希望可以有收获)
三、实验心得体会
老师上课都说了,上课说的很好,也跟的打了,不过就是不懂打的是什么,所以不会,学习的越来越多,拉下的也不少了,所以越来越吃力,慢慢来吧