凡凡殇清 发表于 2017-4-27 13:37:37

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

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

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

#include <stdio.h>

float Max, Min;

int main ()

{
      float average( float array[], int n );
      
      float aver, score;
      
      int i;

      for ( i=0; i < 10; i++)
      {
                scanf("%d", &score);

      }
      
/****************************************
    while (1)
      {
            for ( i=0; i < 10; i++ )
            {
                  scanf("%f", &score);
                  
                  if ( score < 0 )
                  {
                        printf("Error: Results there is no negative!!!\n");
                        
                        printf("Please input again.\n");
                        
                        
                  }
                  break;
            }
//          break;
            
      }
    ***********************************************/
      aver = average( score, 10 );
      
      printf("Max=%.2f\t Min=%.2f\t averagr=%.2f\n", Max, Min, aver );
       return0;
}

float average( float array[], int n )

{
      int i;
      
      float aver, sum = array;
      
      Max = Min = array;
      
      for( i=1; i < n; i++ )
      {
            if( array > Max )
            {
                  Max = array;
            }
            else if ( array < Min )
            {
                  Min = array;
            }
            
            sum += array;
      }
      
      aver = sum / n;
      
      return ( aver );
}

Krant5 发表于 2017-4-27 14:03:27

计算器是用压栈和弹栈的方式做出来的,你随便搜个例子就知道了

凡凡殇清 发表于 2017-4-30 23:44:38

我想了想,可以用goto语句实现
加上头文件conio.h

在return 0 ;前面加上去下
ch =getch();
if ( ch ==`z`)
{
goto a ;|
}
在for语句前加上a:
页: [1]
查看完整版本: 用c语言写的一个简单的求平均成绩,最大成绩,和最小成绩,我所想到的问题,