作业十一

---恢复内容开始---

#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为实参

三实参用数组名,形参用指针变量

实参用数组名,形参用指针变量.

冒泡排序

对一个队列里的数据,挨个进行比较和交换,每次比较出一个当前最大或者最小的值放在队尾,然后继续下次比较,这样就跟冒泡一样,将最大或最小的数从底下“冒出来”,所以称为冒泡排序。

心得

好难,指针越来越搞不懂了,特别是冒泡排序。

 

---恢复内容结束---

posted @ 2016-12-07 21:49  虞小生  阅读(127)  评论(2编辑  收藏  举报