实验4

实验结论

part1~part4

1.函数声明和函数定义中,数组名作为形式参数时,数组名后面要加[ ]

  函数调用中,数组名作为实际参数时,直接写数组名

2.当实参数组传递为形参时,形参的数组并不分配新的存储单元,而是将形参数组与实参数组共同占用一段存储区域

3.冒泡法排序基本思想:两个相邻的元素依次比较,将较大(或较小)的元素放在后面,直到最后一个数,这就完成了一趟冒泡。此时最大值(或最小值)放置在了数组的尾部,出去它,剩下的数再依次比较两个相邻的元素,当所有的元素都经过比较和交换的操作后,就能得到排好的序列。

  因为对n个数进行排列,共需扫描n-1遍,第i遍扫描时需要比较n-i次,当最后一遍扫描时就需要比较(n-1-i)次,所以边界条件为i<n-1和j<n-1-i

 

part5

练习1

#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);
        
    // 利用循环输入N个整数给数组a 
    for(i=0;i<N;i++)
    scanf("%d",&a[i]);// 补足程序1 
    // 。。。 
            
    max=findMax(a,N);// 调用子函数max求数组a的最大元素值,并赋值给max 
    // 补足程序2 
    // 。。。 
        
    // 输出最大值
    printf("数组a中最大元素值为: %d\n\n", max); 
        
    return 0;
} 

// 函数定义
// 功能描述:找出整型数组a中元素的最大值,并返回次此最大值
// 补足函数findMax()的实现部分3 
// 。。。 
int findMax(int a[],int n){
int i,max;
max=a[0];

for(i=0;i<n;i++){
    if(a[i]>max)
    max=a[i];
}
return max;
}

 

 练习2

#include <stdio.h>
const int N=4;
void output(char x[], int n);  // 函数声明 
void bubblesort(char x[],int n);// 排序函数声明
// 补足代码1 
// 。。。 

int main() {
    char string[N] = {'2','0','1','9'};
    int i;
    
    printf("排序前: \n");
    output(string, N);
    
    // 调用排序函数对字符数组中的字符由大到小排序 
    // 补足代码2 
    // 。。。 
    bubblesort(string,N);
    
    printf("\n排序后: \n"); 
    output(string, N);
    
    printf("\n");
    
    return 0;    
} 

// 函数定义
// 函数功能描述:输出包含有n个元素的字符数组元素
// 形参:字符数组,以及字符数组元素个数
void output(char x[], int n) {
    int i;
    
    for(i=0; i<N; i++)
        printf("%c", x[i]);
} 

// 函数定义
// 函数功能描述:对一组字符由大到小排序
// 形参:字符数组,以及字符数组元素个数
// 补足代码3 
// 。。。 
void bubblesort(char x[],int n){
    int i,j;
    char t;
    
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;j++){
            if(x[j]<x[j+1]){
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
        }
    }
}

 

实验总结与体会

自己动手编写程序对我来说还是有点难度(T_T)

posted @ 2019-04-25 21:59  我不再熬夜了  阅读(143)  评论(0)    收藏  举报