鱼C论坛

 找回密码
 立即注册
查看: 3089|回复: 2

用c语言写的一个简单的求平均成绩,最大成绩,和最小成绩,我所想到的问题,

[复制链接]
发表于 2017-4-27 13:37:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 凡凡殇清 于 2017-4-27 14:14 编辑

这个简单的程序大家估计都能写出来,如果你运行这个程序是会发现,当你输入负数是它也能运行出结果,还有成绩都有个上限而这个程序没有限制(只要在int承受范围内)它都能运算,这样不符合常规,还有就是怎么能让一个程序循环输入,就像计算器一样,一直能重复利用,没有按那个叉号,他就一直能运行。
路过的大哥们帮我看看怎么解决。下面是我想的进入死循环了。。。。。

  1. #include <stdio.h>

  2. float Max, Min;

  3. int main ()

  4. {
  5.       float average( float array[], int n );
  6.       
  7.       float aver, score[10];
  8.       
  9.       int i;

  10.       for ( i=0; i < 10; i++)
  11.       {
  12.                 scanf("%d", &score[i]);

  13.       }
  14.       
  15. /****************************************
  16.     while (1)
  17.       {
  18.             for ( i=0; i < 10; i++ )
  19.             {
  20.                   scanf("%f", &score[i]);
  21.                   
  22.                   if ( score[i] < 0 )
  23.                   {
  24.                         printf("Error: Results there is no negative!!!\n");
  25.                         
  26.                         printf("Please input again.\n");
  27.                         
  28.                         
  29.                   }
  30.                   break;
  31.             }
  32.   //          break;
  33.             
  34.       }
  35.     ***********************************************/  
  36.       aver = average( score, 10 );
  37.       
  38.       printf("Max=%.2f\t Min=%.2f\t averagr=%.2f\n", Max, Min, aver );
  39.        return  0;
  40. }

  41. float average( float array[], int n )

  42. {
  43.       int i;
  44.       
  45.       float aver, sum = array[0];
  46.       
  47.       Max = Min = array[0];
  48.       
  49.       for( i=1; i < n; i++ )
  50.       {
  51.             if( array[i] > Max )
  52.             {
  53.                   Max = array[i];
  54.             }
  55.             else if ( array[i] < Min )
  56.             {
  57.                   Min = array[i];
  58.             }
  59.             
  60.             sum += array[i];
  61.       }
  62.       
  63.       aver = sum / n;
  64.       
  65.       return ( aver );
  66. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-27 14:03:27 | 显示全部楼层
计算器是用压栈和弹栈的方式做出来的,你随便搜个例子就知道了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-30 23:44:38 From FishC Mobile | 显示全部楼层
我想了想,可以用goto语句实现
加上头文件conio.h

在return 0 ;前面加上去下
ch =getch();
if ( ch ==`z`)
{
goto a ;|
}
在for语句前加上a:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-8 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表