实验四

Part 1

运行结果如下:每个int 型数据分配4个字节,观察5个元素的地址可知,在内存中连续存放

第一次修改结果如下:每个char类型数据分配1个字节,可得出连续存放

第二次修改如下:每个double 类型数据分配8个字节,连续存放

Part 2

(1)

(2)经过了修改,更加简洁了

(3)省略了数组大小,由sizeof(a)/ sizeof(a[0])计算数组元素个数

其中sizeof(a[0])也可写成sizeof(int)

(4)部分元素初始化

观察到a[2],a[3],a[4]都为0,没有被初始化的元素系统会自动设为0,一些实际问题可应用,如投票问题

part 3

(1)数组元素作为函数实参

 

(2)数组名作为函数实参

注 在函数声明和声明中,init后面括号里的是形式参数,数组名后加[ ];

    在函数调用中,是实际参数,直接写数组名

part 4 冒泡法对一组数据由小到大排序

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);

    // 调用子函数max求数组a的最大元素值,并赋值给max 
    // 补足程序2 
        
    // 输出最大值
    printf("数组a中最大元素值为: %d\n\n", max); 
        
    return 0;
} 
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;
}
 
// 函数定义
// 功能描述:找出整型数组a中元素的最大值,并返回次此最大值
// 补足函数findMax()的实现部分3 

9

(2)

#include <stdio.h>
const int N=4;
void output(char x[], int n); 

void px(char x[],int n);
int main() {
char string[4] = {'2','0','1','9'};
int i;
printf("排序前: \n");
output(string, N);
// 调用排序函数对字符数组中的字符由大到小排序
px(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 px(char x[],int n)
{
    int i,j;
    char temp;
    for(i=0;i<n;i++)
    {for(j=0;j<n-i-1;j++)
    {


        if(x[j]<x[j+1])
        {
            temp=x[j];
            x[j]=x[j+1];
            x[j+1]=temp;
        }
    }
    }
}

posted @ 2019-04-25 17:47  南汐寒笙  阅读(85)  评论(0编辑  收藏  举报