实验四

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

实验结果:

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

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

在函数调用中,实际参数直接写数组名,不用加[ ]

posted @ 2019-04-25 17:50  1291  阅读(89)  评论(1编辑  收藏  举报