7-7/ 7-8课后例题

1、打擂台算法

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int max(int x,int y);
 5     int a[10],m,n,i;
 6     printf("enter 10 numbers:");
 7     for(i=0;i<10;i++)
 8         scanf("%d",&a[i]);
 9     printf("\n");
10     for(i=0,m=a[0],n=0;i<10;i++)
11     {
12         if(max(m,a[i])>m)
13         {m=max(m,a[i]);
14         n=i;
15         }
16     }
17     printf("The largest number is %d\n is the%dth number\n",m,n+1);
18 }
19 int max(int x,int y)
20 {
21     return(x>y?x:y);
22 }

2、一维数组名做函数参数求平均值

 1 #include<stdio.h>
 2 int main()
 3 {
 4     float average(float array[10]);
 5     float score[10],aver;
 6     int i;
 7     printf("input 10 scores:\n");
 8         for(i=0;i<10;i++)
 9             scanf("%f",&score[i]);
10         printf("\n");
11         aver=average(score);
12         printf("average is %5.2f\n",aver);
13         return 0;
14 }
15 float average(float array[10])
16 {
17     int i;
18     float aver,sum=array[0];
19     for(i=1;i<10;i++)
20         sum=sum+array[i];
21     aver=sum/10;
22     return(aver);
23 }

3、用选择法排序

#include<stdio.h>
int main()
{
    void sort(int array[],int n);
    int a[10],i;
    printf("enter arry:\n");
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    sort(a,10);
    printf("the sort arry:\n");
    for(i=0;i<10;i++)
        printf("%d  ",a[i]);
    printf("\n");
    return 0;
}
void sort(int arry[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {k=i;
    for(j=i+1;j<n;j++)
        if(arry[j]<arry[k])
            k=j;
        t=arry[k];arry[k]=arry[i];arry[i]=t;
    }
}

4、二维数组做形参时第一位大小省略,第二位不能省略

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int max(int array[][4]);
 5     int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
 6     printf("Max value is%d\n",max(a));
 7     return 0;
 8 }
 9 int max(int arry[][4])
10 {
11     int i,j,max=arry[0][0];
12     for(i=0;i<3;i++)
13         for(j=0;j<4;j++)
14             if(arry[i][j]>max)
15                 max=arry[i][j];
16             return max;
17 }

5、全局变量求最低分和最高分·

#include<stdio.h>
float Max=0,Min=0;
int main()
{
    float average(float array[],int n);
    float ave,score[10];
    int i;
    printf("please enter 10 scores:");
    for(i=0;i<10;i++)
        scanf("%f",&score[i]);
    ave=average(score,10);
    printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);
    return 0;
}
float average(float array[],int n)
{
    int i;
    float aver,sum=array[0];
    Max=Min=array[0];
    for(i=1;i<n;i++)
    {
        if(array[i]>Max)
            Max=array[i];
        else if(array[i]<Min) Min=array[i];
        sum=sum+array[i];
    }
    aver=sum/n;
    return(aver);
}

 

posted @ 2019-08-16 21:06  未央wdq  阅读(234)  评论(0编辑  收藏  举报