实验四

     实验结论

一 对part1到part4的总结

1>

数组名作为函数参数时,形参、实参的语法形式书写注意事项,函数调用和参数传递过程 。
c语言支持在对数组初始化时,只初始化一部分元素。这种情形下,剩余没有被初始化的元素值,系统自动
设为0。
函数声明和函数定义中,函数名init后面括号里出现的是形式参数,数组名后面要加[ ]。
函数调用中,函数名init后面括号里出现的是实际参数,直接写数组名。
2>对冒泡法的归纳总结。

冒泡法,用于排序,其基本算法就是把一组数据中的相邻两数进行比较,将大数放后,小数放前,(当然也可以反过来).

原理

假设要对n个数由小到大排序,使用冒泡法具体排序过程如下:
第1遍: 对n个数进行第1遍扫描
比较第1个数与第2个数,若a1>a2,则交换;此时,a2中存放a1和a2两个数当中的最大值。
比较第2个数与第3个数,若a2>a3,则交换;此时,a3中存放a2和a3两个数当中的最大值。
依次类推…
比较第n-1个数和第n个数,若an-1>an ,则交换;此时,an中存放an-1和an当中的最大值。
经过(n-1)次比较后,最大的数被放在an
第2遍: 前面n-1个数进行第2遍扫描:
。。。
 
经过(n-2)次比较后,第2大的数被放在an-1
… …
第n-1遍: 对前面2个数进行第n-1遍扫描
。。。
 
经过1次比较后,第2小的数被放a2
至此,排序过程结束。
其实想要理解很简单 在纸上一步一步算 就会理解冒泡法的原理了
至于边界条件值得注意 不妨把边界值带进去 也是一个很好的方法 

Part5:编程练习。

找最大整数

编码

// 功能描述:输入一组整数,输出最大值 
#include <stdio.h>
int findMax(int a[], int n); // 函数声明
const int N=5;
int main() {
    int a[N];
    int max, i;
    
    printf("输入%d个整数: \n", N);
        
    for(i=0;i<5;i++)
    {
    scanf("%d",&a[i]);
    printf("%d\n",a[i]);
    }
    max=findMax(a,N);
    printf("数组a中最大元素值为: %d\n\n", max); 
    return 0;
} 
int findMax(int a[],int n)
{
    int i,max;
    max=a[0];
    for(i=0;i<n;i++)
    if(a[0]>max)
    max=a[i];
    return max;
}

练习二

使用冒泡法对字符数组由大到小排序。 
 
 
#include <stdio.h>
const int N=4;
void output(char x[], int n);   
void bubblesort(char x[], int);
int main() {
    char string[N] = {'2','0','1','9'};
    int i;
    
    printf("排序前: \n");
    output(string, N);
    bubblesort(string,N);
    printf("\n排序后: \n"); 
    output(string, N);
    
    printf("\n");
    
    return 0;    
} 
void output(char x[], int n) {
    int i;
    
    for(i=0; i<N; i++)
        printf("%c", x[i]);
} 
void bubblesort(char x[], int n)
 {
 int j,k;
     char t; 
     for(k=0;k<n-1;k++){
       for(j=0;j<n-1-k;j++){
         if(x[j]<x[j+1]){
           t=x[j+1];
           x[j+1]=x[j];
           x[j]=t;
         } 
       }
     }
} 

总结

这此实验 感觉有点难 尤其是冒泡法 不过练了一下午总算懂了

不管怎么说 学习总是要重复的

互评

1

https://www.cnblogs.com/hx-123/p/10758742.html

2

https://www.cnblogs.com/lxl720/p/10770167.html

https://www.cnblogs.com/zys-0119/p/10769529.html

 

 

posted on 2019-04-25 23:05  何世诚  阅读(101)  评论(2编辑  收藏  举报

导航