实验四

PART1:数组数据结构

#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>
const int N=5;
int main(){
    int a[N]={'h','e','l','l','o'};
    int i;
    for(i=0;i<N;i++)
    printf("%d:%c\n",&a[i],a[i]);
    return 0; 
}

第二次修改

#include<stdio.h>
const int N=5;
int main(){
    double a[5]={1.0,2.0,3.0,4.0,5.0};
    int i;
    for(i=0;i<N;i++)
    printf("%d:%.2f\n",&a[i],a[i]);
    return 0; 
}

PART2:一维数组的定义,初始化以及数组元素的引用方法

#include<stdio.h>
int main(){
    int a[5];
    a[0]=1;
    a[1]=9;
    a[2]=8;
    a[3]=6;
    a[4]=0;
    printf("a[0]=%d\n",a[0]);
    printf("a[1]=%d\n",a[1]);
    printf("a[2]=%d\n",a[2]);
    printf("a[3]=%d\n",a[3]);
    printf("a[4]=%d\n",a[4]);
    return 0;
}

在原有基础上的改进

#include<stdio.h>
int main(){
    int a[5]={1,9,8,6,0};
    int i;
    for(i=0;i<5;i++)
    printf("a[%d]=%d\n",i,a[i]);
    return 0;
} 

第二种修改

#include<stdio.h>
int main(){
    int a[]={1,9,8,6,0};
    int i,n;
    n=sizeof(a)/sizeof(a[0]);
    for(i=0;i<n;i++)
    printf("a[%d]=%d\n",i,a[i]);
    return 0;
}

PART3:数组作为函数函数实参

#include<stdio.h>
const int N=5;
int main(){
    int score[N] = {99,82,88,97,85};
    int i;
    for(i=0;i<N;i++)
    printf("%d ",score[i]);
    return 0;
}

添加自定义函数

#include<stdio.h>
const int N=5;
void print(int x);
int main(){
    int score[N] = {99,82,88,97,85};
    int i;
    for(i=0;i<N;i++)
    printf("%d ",score[i]);
    return 0;
}    
void print(int x){
    printf("%d",x);
}

数组名作为函数实参

#include<stdio.h>
const int N=5;
void init(int a[],int n,int value);
int main(){
    int b[N],i;
    init(b,N,-1);
    for(i=0;i<N;i++)
    printf("%3d",b[i]);
    return 0;
}
void init(int a[],int n,int value){
    int i;
    for(i=0;i<n;i++)
    a[i]=value;
}

PART4:用冒泡法对一组数据由小到大排序

#include<stdio.h>
const int N=5;
void bubbleSort(int [],int);
int main(){
    int i,a[N];
    printf("请输入%d个整型数据:\n",N);
    for(i=0;i<N;i++)
    scanf("%d",&a[i]);
    printf("排序前的数据:\n");
    for(i=0;i<N;i++)
    printf("%d ",a[i]);
    printf("\n ");
    bubbleSort(a,N);
    printf("排序后的数据:\n");
    for(i=0;i<N;i++)
    printf("%d ",a[i]);
    printf("\n");
    return 0;
} 
void bubbleSort(int 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;
            }
        }
    }
}

PART5:练习一

补全程序,查找一组整型数据的最大值。

#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,max;
    max=a[0];
    for(i=0;i<N;i++){
        if(a[i]>max)
            max=a[i];
    }
    return max;
}

练习二:补全程序,使用冒泡法对字母数组由大到小排序

#include <stdio.h>
const int N=4;
void output(char x[], int n);   
void bubblesort(char x[], int);
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;    
} 

总结:打代码的过程中有的时候忽略了空格的存在,“%d”与“%d ”输出的结果有些许区别,前者会导致输出结果连续不间断无空格,后者可以正确输出结果。

https://www.cnblogs.com/zmh1977/p/10771868.html

https://www.cnblogs.com/2717992341cjf/p/10771628.html

https://www.cnblogs.com/24cherry/p/10770259.html

posted @ 2019-04-25 23:54  汪平安  阅读(96)  评论(1编辑  收藏  举报