作业十一

知识点:

1.指针,数组和地址间的关系。

1)指针与数组:指针是以地址为的变量,而数组名的值是一个特殊的固定地址可以把它看做是常量指针。

p=a; 等价于p=&a[0];

p=a+1; 等价于p=&a[1];

注:p=a+1是合法的,但a=a+1是非法的。

如果i是int型变量,那么p+i就是距地址p的第i个偏移,类似的,a+i是距数组a的基地址的第i个偏移,*(a+i)与啊【i】等价。

数组名可以使用指针形式,而指针变量也可以转换为数组形式。

2.数组名作为函数的参数。

3)冒泡排列算法分析

进行从小打到大排序时,小的数经过交换会慢慢从底下“冒”上来。

1.冒泡法进行排序。要求自定义一个函数实现用冒泡法对整数数组进行简单排序。

#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("%2d",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;
            }
}

2.在数组中查找指定元素:要求自定义一个函数

#include<stdio.h>
int search(int list[],int n,int x);

int main()
{
    int n,x,list[10];
    int i;
    
    printf("输入n:");
    scanf("%d",&n);
    printf("输入 %d integers:",n);
    for(i=0;i<n;i++)
        scanf("%d",&list[i]);
    printf("请输入x:");
    scanf("%d",&x);
    search(list,n,x);
    if(search(list,n,x)!=-1)
        printf("mid=%d
",search(list,n,x));
    else
        printf("-1
");
    
    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;
    }
        
}

 二实验遇到的问题:题目中当中的知识点还不怎么清楚,经过看书和同学的讲解,才了解到当中的问题。

三实验心得:题目难度逐渐加大,需要我们复习,复习,在复习。题目内容也渐渐地加强,需要我们灵活的应用的知识点及方法,加强练习。

原文地址:https://www.cnblogs.com/jiejunxu/p/6140098.html