程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 問題六十一: 在數組score中將要存儲某小組C++程序設計的成績.

問題六十一: 在數組score中將要存儲某小組C++程序設計的成績.

編輯:關於C

[plain]
/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)      
* 程序的版權和版本聲明部分      
* All rights reserved.      
* 文件名稱: txt.c      
* 作    者: liuyongshui      
* 問    題:  在數組score中將要存儲某小組C++程序設計的成績. 
* 問題來源:    
* 完成日期: 2013 年4 月18日      
* 版 本 號: V1.0      
*/     
#include <stdio.h> 
#include <math.h> 
 
float total(float grade[], int num); 
float average(float sum, int num); 
float deviation(float grade[], float ave, int num);    //求偏差 
void max_min(float grade[], int num); 
 
 
int main() 

    int i; 
    int num; 
    float sum; 
    float ave; 
    float dev;  //偏差 
    float grade[100]; 
     
    printf("您班上有人?嘻嘻嘻共有:"); 
 
    scanf("%d", &num); 
    printf("\n"); 
 
    for(i=0; i<num; i++) 
    { 
        printf("輸入第%2d位同學的成績(按EENTER進入):", i); 
        scanf("%f", &grade[i]); 
    } 
     
    sum= total(grade, num); 
    printf("\n總成績為:%0.2f\n", sum); 
 
    ave= average(sum, num); 
    printf("\n平均分為:%0.2f\n", ave); 
 
    dev= deviation(grade, ave, num); 
    printf("\n偏差為:%0.2f\n\n", dev); 
 
    max_min(grade, num); 
 
    return 0; 

 
 
//sum()函數聲明 
 
float total(float grade[], int num)   //求總分 

    int i; 
    float sum=0.0; 
     
    for(i=0; i<num; i++) 
    { 
        sum+=grade[i];    
    } 
 
    return sum; 

//average()函數聲明 
float average(float sum, int num)   //求平均分 
{     
     float ave; 
 
     ave=sum/num; 
 
     return ave; 

//deviation()函數聲明 
float deviation(float grade[], float ave, int num)    //求偏差 

    int i; 
    float s=0.0; 
    float dev; 
 
    for(i=0; i<num; i++) 
    { 
       s=s+(grade[i]-ave)*(grade[i]-ave); 
    } 
 
    dev=sqrt(s/(num-1)); 
      
    return dev; 

 
//max_min()函數聲明 
void max_min(float grade[], int num) 

    int i; 
    int j=0; 
    int l=0; 
    int  max_num[100]; 
    int  min_num[100]; 
    float max; 
    float min; 
     
    max=min=grade[0]; 
 
    for(i=0; i<num; i++) 
    { 
        if(max< grade[i]) 
        { 
            max= grade[i];    //求最大值 
        } 
        if(min> grade[i]) 
        { 
            min= grade[i];    //求最小值 
        } 
    } 
 
    for(i=0; i<num; i++) 
    { 
        if(max== grade[i]) 
        { 
           max_num[j++]=i;   //記錄最最大值的學號 
        } 
        if(min== grade[i]) 
        { 
           min_num[l++]=i;    //記錄最最小值的學號 
        } 
    } 
     
    printf("最高分為:%0.2f\n", max); 
    printf("最高分的學號有:"); 
    for(i=0; i<j; i++) 
    { 
        printf("%d", max_num[i]); 
        if(i<j-1)    //i<j-1是打印逗號,反之不打印  
        { 
            printf(","); 
        } 
    } 
    printf("\n\n"); 
 
    printf("最低分為:%0.2f\n", min); 
    printf("最低分的學號有:"); 
    for(i=0; i<l; i++) 
    {    
        printf("%d", min_num[i]); 
        if(i<l-1) //i<l-1是打印逗號,反之不打印  
        { 
            printf(","); 
        } 
    } 
    printf("\n"); 

/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)    
* 程序的版權和版本聲明部分    
* All rights reserved.    
* 文件名稱: txt.c    
* 作    者: liuyongshui    
* 問    題:  在數組score中將要存儲某小組C++程序設計的成績.
* 問題來源:  
* 完成日期: 2013 年4 月18日    
* 版 本 號: V1.0    
*/   
#include <stdio.h>
#include <math.h>

float total(float grade[], int num);
float average(float sum, int num);
float deviation(float grade[], float ave, int num);    //求偏差
void max_min(float grade[], int num);


int main()
{
    int i;
 int num;
 float sum;
 float ave;
 float dev;  //偏差
 float grade[100];
   
 printf("您班上有人?嘻嘻嘻共有:");

 scanf("%d", &num);
    printf("\n");

    for(i=0; i<num; i++)
 {
     printf("輸入第%2d位同學的成績(按EENTER進入):", i);
  scanf("%f", &grade[i]);
 }
   
 sum= total(grade, num);
 printf("\n總成績為:%0.2f\n", sum);

 ave= average(sum, num);
 printf("\n平均分為:%0.2f\n", ave);

    dev= deviation(grade, ave, num);
 printf("\n偏差為:%0.2f\n\n", dev);

    max_min(grade, num);

 return 0;
}


//sum()函數聲明

float total(float grade[], int num)   //求總分
{
    int i;
 float sum=0.0;
 
 for(i=0; i<num; i++)
 {
     sum+=grade[i];  
 }

 return sum;
}
//average()函數聲明
float average(float sum, int num)   //求平均分
{   
  float ave;

     ave=sum/num;

  return ave;
}
//deviation()函數聲明
float deviation(float grade[], float ave, int num)    //求偏差
{
    int i;
 float s=0.0;
 float dev;

 for(i=0; i<num; i++)
 {
    s=s+(grade[i]-ave)*(grade[i]-ave);
 }

 dev=sqrt(s/(num-1));
    
 return dev;
}

//max_min()函數聲明
void max_min(float grade[], int num)
{
    int i;
    int j=0;
 int l=0;
 int  max_num[100];
 int  min_num[100];
    float max;
 float min;
   
 max=min=grade[0];

 for(i=0; i<num; i++)
 {
     if(max< grade[i])
  {
   max= grade[i];    //求最大值
  }
  if(min> grade[i])
  {
      min= grade[i];    //求最小值
  }
 }

 for(i=0; i<num; i++)
 {
     if(max== grade[i])
  {
     max_num[j++]=i;   //記錄最最大值的學號
  }
  if(min== grade[i])
  {
     min_num[l++]=i;    //記錄最最小值的學號
  }
 }
   
 printf("最高分為:%0.2f\n", max);
 printf("最高分的學號有:");
 for(i=0; i<j; i++)
 {
  printf("%d", max_num[i]);
  if(i<j-1)    //i<j-1是打印逗號,反之不打印
  {
      printf(",");
  }
 }
 printf("\n\n");

 printf("最低分為:%0.2f\n", min);
 printf("最低分的學號有:");
 for(i=0; i<l; i++)
 {  
  printf("%d", min_num[i]);
  if(i<l-1) //i<l-1是打印逗號,反之不打印
  {
      printf(",");
  }
 }
 printf("\n");
}
   \

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved