首页
登录 | 注册

实验四实验报告

实验结论

Part 1

数组将类型相同的一组数据在内存中连续存放,由实验可看出数组中元素的内存地址是连续的,不同类型数据计算机为其分配的内存空间是不同的。

Part 2

定义一维数组a,须指明它包含的元素个数和元素类型,通过数组名和下标的形式引入数组元素,数组下标从0开始,当对所有元素进行初始化时可以省略数组大小,当只初始化一部分元素时剩余没有被初始化的元素值,系统自动设为0。

Part 3

函数名作为参数时,实参和形参的书写形式
函数声明和函数定义中,函数名init后面括号里出现的是形式参数,数组名后面要加[ ]。即:void init(int a[], int n, int value);
函数调用中,函数名init后面括号里出现的是实际参数,直接写数组名。即:init(b, N, -1);

Part 4

冒泡法对一组数据由小到大排序:把一组数据中相邻的两个数进行比较,较大的数放到后面。这样,经过一轮以后,最大的数就放到了最后。把剩余的数,再进行两两比较,经过第2轮后,第2大的数就放到了倒数第二的位置。接下来,做类似操作。若是由大到小排序类似,反过来就可以了。

用冒泡法对n个数小→大排序,
共需扫描(n-1)遍,第i遍扫描时需要比较(n-i)次

但在程序中略有不同:for(j=0; j<n-1-i; j++)  这是由于数组下标从0开始造成的

Part 5

练习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);
    for(i=0;i<N;i++)
       scanf("%d",&a[i]);

    max=findMax(a,N);
  


printf("数组a中最大元素值为: %d\n\n", max);
return 0;
}
int findMax(int a[],int n){
    int i,j,t,max;
    for(i=0;i<n-1;i++){
        if(a[i]>a[i+1]){
            t=a[i+1];
            a[i+1]=a[i];
            max=a[i+1];
        }
    }
    return max;
}

实验四实验报告

第一次写的时候子函数没有写返回,输出是0,后来对比发现错误

练习2:补全程序,使用冒泡法对字符数组由大到小排序。

#include <stdio.h>
const int N=4;
void output(char x[], int n); 
void sort(char x[], int n);
int main() {
char string[N] = {'2','0','1','9'};
int i;
printf("排序前: \n");
output(string, N);
sort(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 sort(char x[],int n){
    char i,j,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;
            }
        }
    }
    
}

实验四实验报告

由大到小排序只需将Part4的程序稍作改进即可,没有遇到什么问题

实验总结与体会

对函数定义调用有了一定的理解,稍有掌握,但综合应用欠缺,具体编程问题很多,要勤加联系一一克服。

 


相关文章

  • 实验4(2019.4.23)
    [实验结论] 一.对Part1-Part4的总结. 1.数组名作为函数参数时,形参.实参的语法形式书写注意事项. 这一点在书本上P154—P158有详细说明,但是叙述过于冗杂,所以借用“实验4.pdf”中的内容总结: (1)函数声明和函数定 ...
  • 第四次上机实验
    实验结论: part 1-4:当数组名作为形式参数时,数组名后面要加[ ]:当数组名作为实际参数时,直接写数组名,后面不要加[ ]:              关于函数的调用及参数传递过程:在程序运行到函数调用这一步骤时,实参会将值赋值给调 ...
  • 实验四(数组)
    实验的总结: int型和float型都用4个字节,char型用一个字节,double型用8个字节.但是在输出5.00和5.000000的时候都没有区别的. 还有就是要注意数组元素的索引号是从零开始的,所以在用for语句的时候<注意它的 ...
  • 实验4
    Part1: #include <stdio.h> const int N=5; int main() { int a[N] = {1, 2, 3, 4, 5}; int i; for(i=0; i<N; i++) pri ...
  • 实验四
    Part1 #include <stdio.h> int main() { double a[5] = {1.0,2.0,3.0,4.0,5.0}; int i; for(i=0; i<5; i++) printf(&qu ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.078 s.
京ICP备10005923号