當前位置:首頁 » 編程軟體 » 高數題編程

高數題編程

發布時間: 2025-05-21 10:14:46

『壹』 菜鳥提問 C語言的兩個問題 求高數解答 用的VC++6.0編譯

#include <stdio.h>

#define STU 30
#define COURSE 3

void Input(long num[],int score[][COURSE],int n);
void GetSumAver(int score[][COURSE],int n,int sum[],float aver[]);
void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[]);
void Print(long num[],int score[][COURSE],int n,int sum[],float aver[]);
int Search(long num[], int n, long x);

void main()
{
int n, score[STU][COURSE], sum[STU], pos;
long num[STU], x;
float aver[STU];

printf("Please enter the total number of the students(n<=30):");
scanf("%d", &n); /*輸入參加考試的學生人數*/

printf("Enter No. and score as: MT EN PH\n");
Input(num, score, n); /*輸入學生成績*/

GetSumAver(score, n, sum, aver); /*計算總分和平均分*/
printf("Before sort:\n");
Print(num, score, n, sum, aver);

Sort(num, score, n, sum, aver); /*排名次*/
printf("After sort:\n");
Print(num, score, n, sum, aver);

printf("Please enter searching number:");
scanf("%ld", &x); /*以長整型格式輸入待查找學生的學號*/
pos = Search(num, n, x); /*名次查詢*/
if (pos != -1)
{
printf("position:\t NO \t MT \t EN \t PH \t SUM \t AVER\n");
printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n",
pos+1,num[pos], score[pos][0],score[pos][1],
score[pos][2], sum[pos],aver[pos]);
}
else
{
printf("Not found!\n");
}
}

/*函數功能:輸入某班學生期末考試三門課程成績
函數參數:長整型數組num,存放學生學號 整型數組score,存放學生成績
整型變數n,存放學生人數
函數返回值:無
*/
void Input(long num[], int score[][COURSE], int n)
{
int i, j;

for (i=0; i<n; i++)
{
scanf("%ld", &num[i]);
for (j=0; j<COURSE; j++)
{
scanf("%d", &score[i][j]);
}
}
}

/* 函數功能:計算每個學生的總分和平均分
函數參數: 整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,計算得到的每個學生的總分
實型數組aver,計算得到的每個學生的平均分
函數返回值:無
*/
void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])
{
int i, j;

for (i=0; i<n; i++)
{
sum[i] = 0;
for (j=0; j<COURSE; j++)
{
sum[i] = sum[i] + score[i][j];
}
aver[i] = (float)sum[i] / COURSE;
}
}

/* 函數功能:按總分成績由高到低排出成績的名次
函數參數:長整型數組num,存放學生學號
整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,存放每個學生的總分
實型數組aver,存放每個學生的平均分
函數返回值:無
*/
void Sort(long num[],int score[][COURSE], int n, int sum[], float aver[])
{
int i, j, k, m;
int temp1;
long temp2;
float temp3;

for (i=0; i<n-1; i++)
{
k = i;

for (j=i+1; j<n; j++)
{
if (sum[j] > sum[k]) k = j;
}
if (k != i)
{
temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;
temp2 = num[k]; num[k] = num[i]; num[i] = temp2;
temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;
for (m=0; m<COURSE; m++)
{
temp1 = score[k][m];
score[k][m] = score[i][m];
score[i][m] = temp1;
}
}
}
}

/* 函數功能: 列印名次表,表格內包括學生編號、各科分數、總分和平均分
函數參數: 長整型數組num,存放學生學號
整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,存放每個學生的總分
實型數組aver,存放每個學生的平均分
函數返回值:無
*/
void Print(long num[], int score[][COURSE], int n,
int sum[], float aver[])
{
int i, j;

printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");
printf("----------------------------------------------------\n");
for (i=0; i<n; i++)
{
printf("%ld\t| ", num[i]);
for (j=0; j<COURSE; j++)
{
printf("%4d\t", score[i][j]);
}
printf("%5d\t%5.0f\n", sum[i], aver[i]);
}
}

/* 函數功能:在學號數組中順序查找學生的學號
函數參數:長整型數組num,存放學生學號
整型變數n,存放學生人數
長整型變數x,存放待查找學生的學號
函數返回值:找到時,返回學生學號在學號數組中的下標位置,否則返回值-1
*/
int Search(long num[], int n, long x)
{
int i;

for (i=0; i<n; i++)
{
if (num[i] == x) return(i);
}
return (-1);
}

Sorry,It's hard to explain .
However,it depends on yourself to figure it out.
Good luck!

熱點內容
android選擇視頻上傳文件 發布:2025-05-21 15:33:53 瀏覽:233
我的世界伺服器必備簡單指令 發布:2025-05-21 15:21:34 瀏覽:408
橋接時ip配置失敗怎麼辦 發布:2025-05-21 15:19:07 瀏覽:475
exe如何反編譯為python 發布:2025-05-21 15:19:04 瀏覽:239
存儲器無法用 發布:2025-05-21 15:17:31 瀏覽:645
webstorm編譯 發布:2025-05-21 14:53:42 瀏覽:367
光遇安卓小王子在哪裡才能見到 發布:2025-05-21 14:52:22 瀏覽:942
彩票源碼定製 發布:2025-05-21 14:38:54 瀏覽:452
wincc編譯鍵 發布:2025-05-21 14:38:52 瀏覽:960
怎麼啟動app伺服器失敗 發布:2025-05-21 14:22:11 瀏覽:760