实验四
Part 1:
#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++) printf("%d: %d\n",&a[i],a[i]); return 0; }
实验结果 成立 头铁又尝试了一下错误的
#include <stdio.h> int main(){ int a[5] = {1 ,2 ,3 ,4 ,5 }; int i; for(i=1;i<=5;i++) printf("a[%d] = %d\n", i, a[i]); return 0; }
说明在数组中a[1]对应的是第二个数 依次类推 其他不在位数中得为0
Part 2:
1.当对所有数组元素初始化时,才可省略数组大小
2.当对部分数组元素初始化时,
eg:int a[5]={1 ,9}
表明只对第一个和第二个进行初始化赋值,其他都赋值为0
Part 4:
#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 b[],int n){ int max=b[0],k; for(k=1;k<n;k++) { if(b[k]>max) max=b[k]; } return max; }
实验结果:
Part 5:
#include <stdio.h> const int N=4; void output(char x[], int n); // 排序函数声明 void sort(char x[],int n); int main() { char string[4] = {'4','7','8','9'}; int i; printf("排序前: \n"); output(string, N); // 调用排序函数对字符数组中的字符由大到小排序 sort(string,N);// 补足代码2 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]); } // 函数定义 void sort(char x[],int n) { int i,j; char t; for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(x[j]<x[j+1]) { t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } } }// 补足代码3
实验结果:
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
在函数声明和函数定义应用中,作为形式参数时数组名后面要加[ ]
在函数调用中,实际参数直接写数组名,不用加[ ]