作业1:冒泡排序

#include <stdio.h>
void sort(int a[80],int n);
int main()
{
    int a[80],n,i;
    printf("输入一个整数n:");
    scanf("%d",&n);
    printf("输入%d个数:",n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a,n);
    for(i=0;i<n;i++)
    {
        printf("%d\t",a[i]);
    }
    
    return 0;
}
void sort(int a[80],int n)
{
    int i,j,t;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]>a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
}

测试:

 

作业2:

#include <stdio.h>
int search(int list[80],int n,int x);
int main()
{
    int a[80],n,x,i;
    printf("Enter an array length n:");
    scanf("%d",&n);
    printf("Enter an array:");
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    } 
    printf("输入你要找的数字x:");
    scanf("%d",&x);
    search(a,n,x);

    return 0;
}
int search(int list[80],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");
    }
}

测试:

 

作业3:

#include <stdio.h>
void CountOff(int n,int m,int out[80]);
int main()
{
    int a[80],x,y;
    printf("输入初始人数n:");
    scanf("%d",&x);
    printf("输入退出人数m:");    
    scanf("%d",&y);
    CountOff(x,y,a);
    
    return 0;
}
void CountOff(int n,int m,int out[80])
{
    int i,j;
    for(i=0;i<n;i++)
    {
        out[i]=i+1;
    }    
    while(out[i]<n)
    {
        for(i=0;i<n;i++)
        {
            if(out[i]!=0)
            {
                j++;
            }    
            if(j==m)
            {
                printf("%d\n",out[i]);
                out++;
                j=0;
                out[i]=0;
            } 
            else if(i==n-1)
                break;
        }
    }
}

 

测试:

 

如果有一个实参数组,想在函数中改变此数组的元素的值,实参与形参的对应关系有以下几类情况:

①形参和实参都用数组名:传递的是实参数组首地址,形参与实参共用同一段内存单元。

②实参用数组名,形参用指针变量:通过指针变量值得改变可以指向实参数组的任一元素。

③实参和形参都用指针变量:先使实参指针变量指向数组的首地址,然后将实参的值传给形参,通过指针变量值得改变可以使其指向数组的每个元素。

④实参为指针变量,形参为数组名:设p为指针变量,令p=&a[0],p为实参,对应的形参x为数组名,则函数调用时将p的值传给形参数组名x,也就是使其取得a数组的首地址,使x数组和a数组共用一段内存单元

 

心得:这节课没有讲过多的新知识,做题练习居多,四节课加一起做了十多道题,效率还是可以的,也解决了上一次作业存在的问题。这次作业3存在讨论的情况 是讨论的结果所以难免会一样,所以周四上课的时候要认真听老师的讲解,有没有讨论结果意外的结果。没有讲过多的知识,所以把老师上讲的PPT拿过来引用。