zoukankan      html  css  js  c++  java
  • 第九次作业。

     1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)#include<stdio.h>#define N 10double ave(int score[],int n);//求平均 void input(int score[],int n);//输入 int fmax(int score[],int n);//最大值int fmin(int score[],int n);//最小值void indexmax(int score[],int n,int max);//最大值下标

    void indexmin(int score[],int n,int min);//最小值下标 
    void find(int score[],int n,int want);//查找 
    void series(int score[],int n);//排序
    void output(int score[],int n);//输出 
    int main()
    {
        int n,score[N],max,min,i,want;
        double average;
        printf("请输入共有多少人:
    ");
        scanf("%d",&n);
        input(score,n);//存数据 
        average=ave(score,n);
        max=fmax(score,n);
        min=fmin(score,n);
        output(score,n);//输出数据 
        printf("平均值=%.2lf
    ",average);
        printf("最大值=%d",max);
        indexmax(score,n,max);//输出下标 
        printf("最小值=%d",min);
        indexmin(score,n,min);//输出下标 
        printf("请输入想要查询的成绩:
    ");
        scanf("%d",&want);
        find(score,n,want);
        series(score,n);
        return 0;
    }
    double ave(int score[],int n)
    {
        int sum=0,i;
        double result;
        for(i=0;i<n;i++)
        {
            sum=sum+score[i];
        }
        result=(double)sum/n;
        return result;
    }
    void input(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("请输入学生成绩;
    ");
            scanf("%d",&score[i]);
        }
    }
    void output(int score[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("%4d",score[i]);
        }
        printf("
    ");
    }
    int fmax(int score[],int n)
    {
        int max,i;
        max=score[0];
        for(i=0;i<n;i++)
        {
            if(max<score[i])
            {
                max=score[i];
            }
        }
        return max;
    }
    int fmin(int score[],int n)
    {
        int min,i;
        min=score[0];
        for(i=0;i<n;i++)
        {
            if(min>score[i])
            {
                min=score[i];
            }
        }
        return min;
    }
    void indexmax(int score[],int n,int max)
    {
        int i;
      
    for(i=0;i<n;i++)
     {
    if(max==score[i])
    { printf(
    "%4d号 ",i+1); }
    }
    printf(
    " "); } void indexmin(int score[],int n,int min) { int i; for(i=0;i<n;i++) { if(min==score[i]) { printf("%4d号 ",i+1); } } printf(" "); } void find(int score[],int n,int want) { int i,falg=0;
    printf(
    "查找到的为; "); for(i=0;i<n;i++) { if(score[i]==want) {
           flag++; printf(
    "%4d号 ",i+1); } }
      if(flag==0)
    {
        printf("没有您要查找的。");
      }
    }
    void series(int score[],int n) { int i,j,tenp; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) { tenp=0; if(score[j]<score[j+1]) { tenp=score[j]; score[j]=score[j+1]; score[j+1]=tenp; } } printf(" 从高到低的顺序为:"); for(i=0;i<n;i++) { printf("%4d",score[i]); } }

       2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。

    #include<stdio.h>
    #define N 100
    int main()
    {
        int number[N],i,num=0;
        for(i=0;i<N;i++)
        {
            number[i]=i+1;
        }
        for(i=0;i<N;i++)
        {
            if(number[i]%3==0||number[i]%7==0)
            {
                number[i]=0;
            }
        }
        for(i=0;i<N;i++)
        {
            if(number[i]!=0)
            {
                num++;
                printf("%4d",number[i]);
            }
        }
        printf("
    共有%d个数
    ",num);
        return 0;
    }

    附加题

       1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的 前m位。要求:(1)数组值在程序中初始化(2)m从键盘输入。

    #include<stdio.h>
    #define N 100
    int main()
    {
        int a[N]={1,2,3,4,5,6,7,8,9,10},i,j,m,temp;
        for(i=0;i<10;i++)
        {
            printf("%d ",a[i]);
        }
        printf("
    请输入向后移的位数;
    ");
        scanf("%d",&m); 
        if(m>10)
        {
            printf("输入错误!
    ");
        }
        else
        {
            for(i=0;i<m;i++)
            {
                temp=a[9];
                for(j=9;j>0;j--)
                {
                    a[j]=a[j-1];
                }
                a[0]=temp;        
            }
        }
        for(i=0;i<10;i++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    } 

       2. 数字加密:输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。(使用数组)

    实验总结:1.我不太理解王佳诺给我讲的方法,所以第一题里我自己又多写了两个函数。

    2.已看作业问题里的学习内容。

    3.内层循环变量与外层循环变量不能相同。

    知识点总结:1.数组初始化a[N]={0}

    2.数组和循环相联系。

    3.再出现a[i+1]或者a[i-1]时需要靠虑是否越界。

  • 相关阅读:
    年度榜单:2013年最流行的15款免费英文字体
    优秀案例:12个精美的设计工作室 & 设计公司网站
    jQuery Label Better – 友好的表单输入框提示插件
    CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
    Feathers JS – 基于 Express 构建数据驱动的服务
    Node.app – 用于 iOS App 开发的 Node.js 解释器
    100款免费的圣诞节矢量图标素材(PSD & SVG)
    Web 开发人员不能错过的 jQuery 教程和案例
    Headroom.js – 快速响应用户的页面滚动操作
    10个实用的 CSS3 按钮效果制作教程
  • 原文地址:https://www.cnblogs.com/lmlmlm/p/6121475.html
Copyright © 2011-2022 走看看