zoukankan      html  css  js  c++  java
  • 2008年885编程题

    第一题:

    #include <stdio.h>
    #include <math.h>
    #define N 10
    int a[N];
    int Stand(int num);//判断数字是否符合标准
    int NumLen(int num);//获取数字的长度,并将每一位写入数组
    void print(int len);//分别打印每一次数字(正序和逆序)
    int main(){
        int num;
        printf("请输入一个不多于5位的正整数
    ");
        scanf("%d",&num);
        if(Stand(num)==2){
            int len=NumLen(num);
            print(len);
        }else{
            printf("输入的数字不符合要求
    ");
        } 
        return 0;
    }
    //判断数字是否符合标准 
    int Stand(int num){
        if(num<0) return 0;//输入的数是负数 
        else if(num>=100000) return 1;//输入的数超过5位数
        else return 2;//输入的数符合要求 
    }
    //获取数字的长度,并将每一位写入数组 
    int NumLen(int num){
        int k=0;
        while(num!=0){
           a[k++]=num%10;
           num/=10;
        }
        printf("数字是%d位数
    ",k);
        return k;//返回长度 
    }
    //分别打印每一次数字(正序和逆序)
    void print(int len){
        int i,j;
        printf("正序输出每一位数:
    ");
        for(i=len-1;i>=0;i--) printf("%4d",a[i]);
        printf("
    逆序输出每一位数:
    ");
        for(i=0;i<len;i++) printf("%4d",a[i]);
    } 

    第二题

    #include <stdio.h>
    int fun(int num);//判断是否符合水仙花数的要求
    int main(){
        int i;
        printf("水仙花数如下:
    ");
        for(i=100;i<1000;i++){
            if(fun(i)) printf("%4d",i);
        }
        return 0;
    }
    int fun(int num){
        int g,s,b;//代表个位,十位,百位
        g=num%10;
        s=num/10%10;
        b=num/100%10;
        if(g*g*g+s*s*s+b*b*b==num) return 1;
        else return 0; 
    } 

    第三题:

    #include <stdio.h>
    #include <math.h>
    #define N 10
    struct student{
        int no;//学号 
        char name[20];
        double score[5];
        double sum;//总分成绩 
    }stu[N];
    void Input();//输入学生的信息
    void StuAvg();//计算每个学生的平均分
    void CourAvg();//计算每门课的平均分
    void MaxScore();//最高分的学生和信息 
    void ScoreFC();//计算平均分方差 
    int main(){
        printf("请输入10个学生的信息:
    ");
        Input();
        StuAvg();
        CourAvg();
        MaxScore();
        ScoreFC();
        return 0;
    }
    void Input(){//输入学生的信息 
        int i,j;
        double sum;
        for(i=0;i<N;i++){
            sum=0;
            printf("输入第%d个学生信息:
    ",i+1);
            scanf("%d%s",&stu[i].no,stu[i].name);
            for(j=0;j<5;j++){
                scanf("%lf",&stu[i].score[j]);
                sum+=stu[i].score[j];
            }
            stu[i].sum=sum;
        }
    }
    void StuAvg(){
        printf("学生平均分信息如下:
    ");
        int i,j;
        printf("学号	姓名	平均分
    ");
        for(i=0;i<N;i++){
            printf("%d	%s	%lf
    ",stu[i].no,stu[i].name,stu[i].sum/5);
        }
    }
    void CourAvg(){
        printf("
    每门课的平均分成绩如下:
    ");
        double sscore[5]={0};
        int i,j;
        for(i=0;i<N;i++){
            for(j=0;j<5;j++) 
              sscore[j]+=stu[i].score[j]; 
        }
        for(i=0;i<5;i++)
          printf("%lf	",sscore[i]/5); 
    }
    void MaxScore(){
        int i,j,k;
        int index[6]={0};
        int score[6]={0};
        for(i=0;i<N;i++){
           for(j=0;j<6;j++){
              if(score[j]<stu[i].score[j]){
                score[j]=stu[i].score[j];
                index[j]=i;
              }    
           }
        }
        for(i=0;i<5;i++){
            printf("第%d门课最高分信息:%d	%s	%lf
    ",i+1,
              stu[index[i]].no,stu[index[i]].name,stu[index[i]].score[i]);
        }    
    } 
    void ScoreFC()//计算平均分方差
    {
        int i,j,k;
       double x12=0.0,x1=0.0;
       for(i=0;i<N;i++){
           x12+=(stu[i].sum/5)*(stu[i].sum/5);
           x1+=(stu[i].sum/5); 
       }
       double s=(1.0/N)*x12-(x1/N)*(x1/N);
       printf("方差是%lf
    ",s); 
    }                 

    第四题:

    #include <stdio.h>
    #define N 5
    int a[N][N];
    void Input();//输入数组
    int AnDian();//寻找安点 
    int main(){
        printf("请输入五阶矩阵:
    ");
        Input();
        int k=AnDian();
        if(k==0){
            printf("NO FIND!
    ");
        }
        return 0;
    }
    void Input(){
         int i,j;
         for(i=0;i<N;i++){
             for(j=0;j<N;j++){
                 scanf("%d",&a[i][j]);
             }
         }    
    }
    //寻找安点; 
    int AnDian(){
        int i,j,k,r,c,value,count=0;
        for(i=0;i<N;i++){//
            value=a[i][0];
            r=i;c=0;
            for(j=0;j<N;j++){//找出每行的最大值 
                if(value<a[i][j]){
                    value=a[i][j];
                    r=i;c=j;
                } 
            }
            for(k=0;k<N;k++){//遍历行最小值的所在列,判断是否依然是列的最小值 
                if(value>a[k][c]){
                    value=a[k][c];
                    r=k;
                }
            }
            if(r==i){//如果最终行没有变化则说明行的最小值也是列的最小值。 
                printf("%d(%d,%d)
    ",value,r+1,c+1);
                count++;
            }
        }
        if(count==0) return 0;
        else return 1;
    }



     收录于《考研计算机885复习》
  • 相关阅读:
    HDFS进阶
    sql 自连接 优化
    爬虫初探-笔趣阁小说下载
    Uos 系统访问局域网下的windows 系统文件
    统信Uos 操作系统--ThinkPad x280 机 安装后无法调节亮度
    Hadoop源码分析-hdfs(2)-NameNode类探索
    Hadoop源码分析-hdfs(1)-启动脚本分析
    设计模式学习笔记(4)-接口和抽象类
    设计模式学习笔记(3)-面向对象与面向过程
    设计模式学习笔记(2)-面向对象基本概念和四大特性
  • 原文地址:https://www.cnblogs.com/byczyz/p/13806476.html
Copyright © 2011-2022 走看看