zoukankan      html  css  js  c++  java
  • 北理工c语言期末考试

    1
    给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No output。(15分)

    题目内容:

    给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No output。

    输入样例:120[空格]130[回车]

    输出样例:121[回车]

    输入样例:500[空格]500[回车]

    输出样例:No output[回车]

    时间限制:500ms内存限制:32000kb

    #include <stdio.h>
    
    int divide(int i,int *num)
    {
        int j = 0;
        while(i)
        {
            num[j] = i%10;
            i = i/10;
            j ++;
        }
        return j;
    }
    
    int sum_equal(int *num,int len)
    {
        int i,sum,sum1;
        sum = sum1 = 0;
        for(i=0;i<len/2;i++)
        {
            sum += num[i];
            sum1 += num[len-i-1];
        }
        if(sum == sum1)
            return 1;
        else return 0;
    }
    
    int main()
    {
        int a,b,len,num[12],flag;
        scanf("%d%d",&a,&b);
        flag = 0;
        for(int i=a;i<=b;i++)
        {
            len = divide(i,num);
            if(sum_equal(num,len))
            {
                flag = 1;
                printf("%d
    ",i);
            }
            else{
                if(i == b && !flag)
                    puts("No output");
            }
        }
        return 0;
    }
    2
    输入数字和大写字母,输出由字母组成的菱形。(15分)

    题目内容:

    输入数字和大写字母,输出由字母组成的菱形。

    输入样例:

    3[空格]B[回车]

    输出样例:

    [空格][空格]B[回车]

    [空格]C[空格]C[回车]

    D[空格][空格][空格]D[回车]

    [空格]E[空格]E[回车]

    [空格][空格]F[回车]

    时间限制:500ms内存限制:32000kb

    #include <stdio.h>
    
    int main()
    {
        int num,index;
        char c;
        scanf("%d%c",&num,&c);
        scanf("%c",&c);
        index = 0;
    //    printf("%c
    ",'c'+1);
        //分开打印上半部分和下半部分
        for(int i=1;i<=num;i++)
        {
            for(int j=num-i;j>0;j--)
                printf(" ");
            printf("%c",c+index);
            for(int k=2*i-3;k>0;k--)
                printf(" ");
            if(i != 1)
                printf("%c",c+index);
            puts("");
            index ++;
        }
        index = num;
        for(int t=num-1;t>=1;t--)
        {
            for(int j=num-t;j>0;j--)
                printf(" ");
            printf("%c",c+index);
            for(int k=2*t-3;k>0;k--)
                printf(" ");
            if(t != 1)
                printf("%c",c+index);
            puts("");
            index ++;
        }
        return 0;
    }

    第一组用例居然没有通过,不可思议!!!

    3
    输入学生的个数,然后输入姓名及三科成绩列表,输出按平均成绩从高到低排序的成绩单(10分)

    题目内容:

    输入学生的个数,然后输入姓名及三科成绩列表,输出按平均成绩从高到低排序的成绩单。

    #include <stdio.h>
    #include <string.h>
    typedef struct STU{
        char name[10];
        int score[3];
        float avg;
    }stu;
    
    void SortByAvg(stu *s,int n)
    {
        char t_name[10];
        for(int i=0;i<n-1;i++)
            for(int j=i+1;j<n;j++)
                if(s[j].avg > s[i].avg)
                {
                    strcpy(t_name,s[j].name);
                    strcpy(s[j].name,s[i].name);
                    strcpy(s[i].name,t_name);
                    for(int k=0;k<3;k++)
                        s[i].score[k] = s[j].score[k] + s[i].score[k] -(s[j].score[k] = s[i].score[k]);
                }
    }
    int main()
    {
        stu s[50];
        int n;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            getchar();
            scanf("%s%d%d%d",s[i].name,&(s[i].score[0]),&(s[i].score[1]),&(s[i].score[2]));
            s[i].avg = 1.0*(s[i].score[0]+s[i].score[1]+s[i].score[2])/3;
        }
        SortByAvg(s,n);
        for(int t=0;t<n;t++)
        {
            printf("%s %d %d %d
    ",s[t].name,s[t].score[0],s[t].score[1],s[t].score[2]);
        }
        return 0;
    }
  • 相关阅读:
    iscsi-分区类型
    NFS
    测试目录
    测试
    函数
    循环、枚举、条件判断、选择排序
    格式化、列表、元组、字典、集合
    常量、注释、变量、堆栈、数据类型、强制转换
    站点迁移至https://traceless.site/
    CENTOS7 源码安装NGINX
  • 原文地址:https://www.cnblogs.com/emptyCoder/p/5621419.html
Copyright © 2011-2022 走看看