实验四
part1~3(在实验课都有仔细操作,时间原因就没再放出来了):
1.数组是类型相同的一组数据构成的,在内存中连续存放。
2.数组元素在使用时多初始化。当对所有数组元素初始化的时候,可以省略数组大小。只初始化一部分元素时,没有被初始化的元素值,默认为0。
3.sizeof(a)计算数组a占用的总的字节数,而sizeof(a[0])计算数组元素a[0]占用的字节数。可以用sizeof(a) / sizeof(a[0])计算数组元素的个数。
4.函数声明和函数定义中,函数名init后面是形式参数,数组名后面要加[ ]。而函数调用中,函数名init后面是实际参数,直接写数组名。
part4:
#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,max,t; for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++){ if(a[j] >= a[j+1]){ max = a[j]; t = max; a[j] = t; } else{ max = a[j+1]; t = max; a[j] = t; } } } return max; }
(这个数据截错了。。。)
#include <stdio.h> const int N=4; void output(char x[], int n); void Line(char [],int); int main() { char string[N] = {'2','0','1','9'}; int i; printf("排序前: \n"); output(string, N); Line(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 Line(char x[],int n){ int 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; } } } }
总结:这次实验完成时间少了很多,自己认为还有很多待改进,真实情况是deadline已经到了。。。在数组剩余内容学习中应当进行更深刻的认识。(尴尬)
对于子函数调用后返回值还有些迷惑,自己写函数都是对着书依葫芦画瓢,没有灵活理解运用。
观摩三位同学:
https://www.cnblogs.com/plisetsky/p/10769388.html
https://www.cnblogs.com/fanlock/p/10771891.html
https://www.cnblogs.com/zmh1977/p/10771868.html