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

    一.实验内容

    1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)

    1.1 代码:

    #include <stdio.h>
    #define N 100 
    int readscore(int score[],int n);
    int printscore(int score[],int n);
    double average(int score[],int n);
    int findmin(int score[],int n);
    void findminlndex(int score[],int n);
    int findmax(int score[],int n);
    void findmaxlndex(int score[],int n);
    void findscore(int score[],int n);
    void bubblesort(int score[],int n);
    int main ()
    {
    	int score[N]={0},n,max,min;
    	double average1;
    	printf("请输入学生数量");
    	scanf("%d",&n);
    	readscore(score,n);
    	bubblesort(score,n);
    	average1=average(score,n);
    	printf("这%d名学生的平均成绩为%.2lf
    ",n,average1);
    	max=findmax(score,n);
    	min=findmin(score,n);
    	printf("这些学生成绩中的最高分是%d,最低分是%d
    ",max,min);
    	findmaxlndex(score,n);
    	findminlndex(score,n);
    	findscore(score,n);
    	return 0;
    }
    int readscore(int score[],int n)
    {
    	int i;
    	printf("请输入分数
    "); 
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&score[i]);
    	}
    	return i;
    }
    void bubblesort(int score[],int n)
    {
    	int i,j,k,l;
    	for(i=0;i<n-1;i++)
    	{
    		l=0;
    		for(j=0;j<n-i-1;j++)
    		{
    			if(score[j]>score[j+1])
    			{
    				k=score[j];
    				score[j]=score[j+1];
    				score[j+1]=k;
    				l=1;
    			}
    		}
    		if(l==0)
    		{
    			break;
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		printf("%d号的学生成绩:%d
    ",i+1,score[i]);
    	}
    }
    double average(int score[],int n)
    {
    	int i,sum=0; 
    	for(i=0;i<n;i++)
    	{
    		sum+=score[i];
    	}
    	return 	(double)sum/n;
    }
    int findmin(int score[],int n)
    {
    	int i,min=score[0];
    	for(i=1;i<n;i++)
    	{
    		if(score[i]<min)
    		{
    			min=score[i];
    		}
    	}
    	return min;
    } 
    void findminlndex(int score[],int n)
    {
        int i,min;
        min=findmin(score,n);
        printf("得最低分的同学有:
    ");
        for(i=0;i<n;i++)
        {
            if(score[i]==min)
            {
            	printf("第%d名学生 ",i+1);
            }
        }
        printf("
    ");
    }
    int findmax(int score[],int n)
    {
    	int i,max=score[0];
    	for(i=1;i<n;i++)
    	{
    		if(score[i]>max)
    		{
    			max=score[i];
    		}
    	}
    	return max;
    }
    void findmaxlndex(int score[],int n)
    {
        int i,max;
        max=findmax(score,n);
        printf("得最高分的同学有:
    ");
        for(i=0;i<n;i++)
        {
            if(score[i]==max)
            {
                printf("第%d名学生 ",i+1);
            }
        }
        printf("
    ");
    } 
    void findscore(int score[],int n)
     {
         int i,score2,l=0;
         printf("请输入你要查找的分数:
    ");
         scanf("%d",&score2);
         for(i=0;i<n;i++)
         {
            if(score[i]==score2)
            {
            	printf("得该分数的是:
    ");
            	printf("第%d位学生
    ",i+1);
            }
         }
     } 
    

      

    1.2 程序运行结果:

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

    2.1 代码:

    #include <stdio.h>
    #define N 100
    int main (   )
    {
    	int i,score[N]={0},a=0;
    	for(i=0;i<N;i++)
    	{
    		score[i]=i+1;
    	}
    	for(i=0;i<N;i++)
    	{
    		if(score[i]%3==0||score[i]%7==0)
    		{
    			score[i]=0;
    		}
    		else
    		{
    			a++;
    			printf("%4d",score[i]);
    			if(a%10==0)
    			{
    				printf("
    ");
    			}
    		}
    	}
    	printf("
      共输出了%d个数",a);
    	return 0;
    }
     
    

    2.2 程序运行结果:

    二、实验总结

    1.注意逻辑混乱问题,不要写成两个最大值或最小值。

    2.,定义的变量名是什么,在主程序里调用也得用什么,变量名要改一下,不能同名。

    3.相似的代码粘也可以,不过不一样的地方要记得改。

    4.要记得加大括号,把相应的内容放进去。

    三、程序分析

    形参的应用于实参有一定的区别,在写程序时不同的写法可以合理运用形参,也可以不用,因为不同的程序在写的时候,用形参和不用形参得出的结果可能会不一样。,比如在程序1和2中,看似相同的变量,却因形参的不同用法而导致结果不同。

  • 相关阅读:
    git 的分支体系命令汇总
    git命令行学习思路总结
    angular1.5版本的自我认识
    我最想去的公司啊 -- 幸福面试两小时
    【转】【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
    时间被序列化后的页面显示的问题
    JS组件Bootstrap实现弹出框和提示框效果代码
    Bootstrap组件之导航条
    Bootstrap学习笔记(四)-----Bootstrap每天必学之表单
    Bootstrap学习笔记(三)-----Bootstrap每天必学之表格
  • 原文地址:https://www.cnblogs.com/wei530/p/6122911.html
Copyright © 2011-2022 走看看