回 帖 发 新 帖 刷新版面

主题:数组问题

#include <stdio.h>
float Max=0,Min=0;               /* 定义全局变量 */  
void main()
{
   float averag(float array[],int n)     /*声明函数*/
   int i;
   float  ave,score[10];                
  pirntf(" input 10 numbers\n");
  for (i=0;i<10;i++)
  scanf("%f",&score[i]);                     /*定义的据组为浮点型 ,用%F*/
  ave=averag(score,10);
  printf("max=%6.2f\nmin=%6.2f\naver=%6.2f\n",Max,Min,ave);
}


float averag(float arry[],int n)
{
   int i;
   float aver,sum=array[0];
   Max=Min=array[0];
   for (i=1;i<10;i++)                 /*i从1开始*/
    {
     if(Max<a[i])
         Max=a[i];
     else if (Min>a[i])
         Min=a[i]; 
     sum=sum+a[i];
    }
    aver=sum/n;
   return(aver)
}     


                                          对于该程序,全局变量Max;Min 的值是怎么传过来的???(我不是很明白) ,如果不定义全局变量,该怎么返回三个数值(ave Max Min)??那位高手给改改,不用全局变量该怎么写?  谢了

回复列表 (共3个回复)

沙发

对不起各位  我弄错了  是全局变量问题 

板凳

定义全局变量下面每个函数调用都能修改其值,没有值传递的

3 楼


#include <stdio.h>
float Max=0,Min=0;
main()
{
   float averag(float arry[],int n);     /*声明函数*/
   int i;
   float  ave,score[10]; 
   printf ("input 10 numbers\n");
  for (i=0;i<10;i++)
  scanf("%f",&score[i]);                     /*定义的据组为浮点型 ,用%F*/
  ave=averag(score,10);
  printf("max=%6.2f\nmin=%6.2f\naver=%6.2f\n",Max,Min,ave);
}


float averag(float arry[],int n)
{
   int i;
   float aver,sum=arry[0];
   Max=Min=arry[0];
   for (i=1;i<10;i++)                 /*i从1开始*/
    {
     if(Max<arry[i])
         Max=arry[i];
     else if(Min>arry[i])
         Min=arry[i]; 
     sum=sum+arry[i];
    }
    aver=sum/n;
   return(aver);
}  
  修改后的代码。
    你的问题太多了我把我记得的几个和你说下;
第一:全局变量后的那个分号应该是英文状态下打出来的,你的不是。
第二:调用函数里面你的形参是arry[]但你后来写的是array[]和a[]。

我来回复

您尚未登录,请登录后再回复。点此登录或注册