hqyj-base_c-day6

  1. 作业1

代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int arr[20];
    int a = 0 , b = 1 ,c ;
    int i , j = 0;
    for(i = 1;i <=20 ; i++ )
    {
        c = a + b;
        arr[j] = b;
        j++;
        a = b ;
        b = c ;
    }
    int sum = 0;i = 1;
    for(j = 0 ;j <20 ; j++ )
    {
        printf("arr[%d]=%d\t",j , arr[j]);
        if(i%4 == 0)
        {
            printf("\n");
        }
        i++;
        sum = sum + arr[j];
    }
    printf("数组总和是:%d\n",sum);
    return 0;
}

运行:

ubuntu@ubuntu:day6$ ./a.out 
arr[0]=1    arr[1]=1    arr[2]=2    arr[3]=3    
arr[4]=5    arr[5]=8    arr[6]=13    arr[7]=21    
arr[8]=34    arr[9]=55    arr[10]=89    arr[11]=144    
arr[12]=233    arr[13]=377    arr[14]=610    arr[15]=987    
arr[16]=1597    arr[17]=2584    arr[18]=4181    arr[19]=6765    
数组总和是:17710
  1. 作业2

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int arr[6];
    int i;
    //输入成绩
    for( i = 0 ; i<6 ; i++)
    {
        printf("请输入第%d学生成绩:",i+1);
        scanf("%d",&arr[i]);
        if(arr[i]<0||arr[i]>100)
        {
            printf("输入错误,请重新输入\n");
            i--;
        }
    }
    //输出成绩
    printf("学生成绩为\n");
    for(i = 0 ; i < 6;i++)
    {
        printf("%d\t",arr[i]);
    }
    printf("\n");
    //冒泡升序排列
    int  j;
    int temp;
    for(i=1;i<6;i++)           //次数循环
    {
        for(j=0;j<6-i;j++)      //数组排序循环
        {
            if(arr[j]>arr[j+1])
            {
                //交换三部曲
                temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;
            }
        }
    }
    //输出排序后成绩
    printf("排序后成绩为\n");
    for(i = 0 ; i < 6;i++)
    {
        printf("%d\t",arr[i]);
    }
    printf("\n");
    return 0;
}

运行:

ubuntu@ubuntu:day6$ ./a.out 
请输入第1学生成绩:87
请输入第2学生成绩:65
请输入第3学生成绩:76
请输入第4学生成绩:45
请输入第5学生成绩:78
请输入第6学生成绩:98
学生成绩为
87    65    76    45    78    98    
排序后成绩为
45    65    76    78    87    98
  1. 作业3

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int arr[] = {1,2,3,4,5,6,7,8,9,0};
    int brr[] = {3,7,15,9,20,2,100,4};
    int lena = sizeof(arr)/sizeof(arr[0]);
    int lenb = sizeof(brr)/sizeof(brr[0]);
    int lenc = lena<lenb?lena:lenb;
    int crr[lenc];
    //循环ab数组
    int i ,j , k = 0 ;
    for(i = 0;i < lena;i++)
    {
        for(j = 0; j<lenb;j++)
        {
            if(arr[i] == brr[j])
            {
                crr[k] = arr[i];
                    k++;
            }
        }
    }
    printf("新数组中的内容是:\n");
    for(i = 0; i < k ; i++)
    {
    printf("crr[%d]=%d\t",i , crr[i]);
    }
    printf("\n");
    return 0;
}

运行:

ubuntu@ubuntu:day6$ ./a.out 
新数组中的内容是:
crr[0]=2    crr[1]=3    crr[2]=4    crr[3]=7    crr[4]=9
  1. 作业4

代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    //输入成绩
    double arr[10];
    int i ;
    for( i = 0 ; i<10 ; i++)
    {
        printf("请输入第%d名学生成绩:",i+1);
        scanf("%lf",&arr[i]);
        if(arr[i]<0||arr[i]>100)
        {
            printf("输入错误,请重新输入\n");
            i--;
        }
    }
    //选择排序
    int j ;
    int max,temp ;          //max记录最大值的下标,temp进行交换
    for(i = 0; i<10;i++)    //外层循环
    {
        max = i ;
        for(j = 1+i;j < 10 ;j++)
        {
            if(arr[max]<arr[j])
            {
                max = j;
            }
        }
        if(max != i)
        {
            //交换三部曲
            temp = arr[max]; arr[max] = arr[i];arr[i] = temp;
        }        
    }
    //输出成绩
    int sum = 0 ;
    double evg ; 
    j = 1 ;
    printf("成绩由高到低依次是:\n");
    for(i = 0; i<10 ;i++)
    {
        printf("%.2lf\t",arr[i]);
        if( j%5 == 0)
        {
            printf("\n");
        }
        j++;
        //求和
        sum = sum + arr[i];
    }
    //求平均数
    evg = sum/10 ; 
    printf("平均分=%.2lf\n",evg);
    //比重
    j = 0;
    for ( i = 0 ; i <10 ;i++)
    {
        if(arr[i] > evg )
        {
            j++;
        }
    }
    printf("大于平均分学生的比重:%d%%\n",j*10);
    return 0;
}

运行:

ubuntu@ubuntu:day6$ ./a.out 
请输入第1名学生成绩:67
请输入第2名学生成绩:78
请输入第3名学生成绩:89
请输入第4名学生成绩:98
请输入第5名学生成绩:87
请输入第6名学生成绩:76
请输入第7名学生成绩:76
请输入第8名学生成绩:68
请输入第9名学生成绩:79
请输入第10名学生成绩:86
成绩由高到低依次是:
98.00    89.00    87.00    86.00    79.00    
78.00    76.00    76.00    68.00    67.00    
平均分=80.00
大于平均分学生的比重:40%
  1. 作业5

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int arr[4][5] = {{90,92,93,91,88},{86,89,87,85,99},{100,95,85,75,90},{90,85,85,95,80}};
    //输出学生成绩
    int i ,j ;
    for(i = 0 ; i<4;i++)
    {
        for(j = 0; j < 5 ;j++)
        {
            printf("第%d组第%d名学生的成绩为:%d\n",i+1,j+1,arr[i][j]);
        }
    }
    //求最高最低分
    int max = 0 , min = 100 ;
    for(i = 0 ; i<4;i++)
    {    
        for(j = 0; j < 5 ;j++)
        {
            if(max<arr[i][j])        //比较并找出最高分
            {
                max = arr[i][j];
            }
            if(min>arr[i][j])        //比较并找出最低分
            {
                min = arr[i][j];
            }
        }
            printf("第%d组最高学生的成绩为:%d,最低学生成绩为:%d\n",i+1,max,min);
    }    
    return 0;
}

运行:

ubuntu@ubuntu:day6$ ./a.out 
第1组第1名学生的成绩为:90
第1组第2名学生的成绩为:92
第1组第3名学生的成绩为:93
第1组第4名学生的成绩为:91
第1组第5名学生的成绩为:88
第2组第1名学生的成绩为:86
第2组第2名学生的成绩为:89
第2组第3名学生的成绩为:87
第2组第4名学生的成绩为:85
第2组第5名学生的成绩为:99
第3组第1名学生的成绩为:100
第3组第2名学生的成绩为:95
第3组第3名学生的成绩为:85
第3组第4名学生的成绩为:75
第3组第5名学生的成绩为:90
第4组第1名学生的成绩为:90
第4组第2名学生的成绩为:85
第4组第3名学生的成绩为:85
第4组第4名学生的成绩为:95
第4组第5名学生的成绩为:80
第1组最高学生的成绩为:93,最低学生成绩为:88
第2组最高学生的成绩为:99,最低学生成绩为:85
第3组最高学生的成绩为:100,最低学生成绩为:75
第4组最高学生的成绩为:100,最低学生成绩为:75
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值