实验四(数组)

实验的总结:

int型和float型都用4个字节,char型用一个字节,double型用8个字节。但是在输出5.00和5.000000的时候都没有区别的。

还有就是要注意数组元素的索引号是从零开始的,所以在用for语句的时候<注意它的使用。

充分理解数组,是类型相同的一组数据构成的集合,这一组数据在内存中的连续存放。

函数调用参数传递一般有三种方式,分别是有值传递、指针传递、引用传递。

当a是字符型数组时,在输出字符型数组元素a[i]时,把格式符由%d换成%c。

当a是double型数组时,在输出数组元素a[i]时,把格式符由%d换成%.2f。

冒泡法就是比较相邻两个数的大小后进行的排序。因为数组元素起始元素是1,所以对于边缘条件,抓住扫描第i次需要比较(n-1-i)次

(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<5;i++)
        scanf("%d",&a[i]);
    max=findMax(a,4)    ;

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

            a[i]=t;
        }
    }
    return a[n];
}

(2)

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

int main() {
    char string[N] = {'2','0','1','9'};
    int i;
    
    printf("排序前: \n");
    output(string, N);
    bubblesort(string,N);
    
     
    
    printf("\n排序后: \n"); 
    output(string, N);
    
    printf("\n");
    
    return 0;    
} 


void bubblesort(char x[], int n) {
    int i,j,t;
    for(i=0;i<n-1;i++){
        for(j=n-i;j>=0;j--){
            if(x[j+1]>x[j]){
            t=x[j];
            x[j]=x[j+1];
            x[j+1]=t; 
        }
    }
        
    }
    
} 

void output(char x[],int n){
    int i;
    for(i=0;i<n;i++){
        printf("%c",x[i]);
    }
    
}

 

posted @ 2019-04-25 22:36  rainbowhorse  阅读(129)  评论(4编辑  收藏  举报