查看單個文章
舊 2008-01-06, 10:51 PM   #1
a19870504
註冊會員
榮譽勳章

勳章總數0
UID - 283728
在線等級: 級別:2 | 在線時長:15小時 | 升級還需:6小時級別:2 | 在線時長:15小時 | 升級還需:6小時
註冊日期: 2007-10-25
文章: 34
精華: 0
現金: 56 金幣
資產: 56 金幣
預設 看了老半天 有幾個問題找不到

#include <iostream>
#include <stdlib.h>
using namespace std;
void chang(float* A, float* B)
{
float *T;
T = B;
B = A;
A = T;
}
int main()
{
const int m=20, n=5;
float a, b, c, d, e, f=00;
float array[n][m] = {a, b, c, d, e, f};
for(int n=0; n<5; n++ ){
for(int j=0; j<5; j++)
switch( j )
{
case 0:
cout << "輸入學號" << "\t" ;
cin >> array[n][j];
break;
case 1:
cout << "輸入姓名" << "\t" ;
cin.getline(s1,10);
break;
case 2:
cout << "輸入化學分數" << "\t" ;
cin >> array[n][j];
break;
case 3:
cout << "輸入工程數學分數" << "\t" ;
cin >> array[n][j];
break;
default:
cout << "輸入核心通識分數" << "\t" ;
cin >> array[n][j];
}}
for(int i=0; i<5; i++){ //把5個人三科的平均分數存入array陣列
for(int j=2; j<5; j++)
array[5] += array[j];
array[5] /= 3;
}
for(int i=0; i<5; i++){ //由大到小排序
for(int j=1; j<5; j++){
if( array[5] < array[j][5])
chang(&array[m],&array[j][m]);
}}
for(int i=0; i<5; i++){ //秀出成績
for(int j=0; j<6; j++)
switch( j )
{
case 0:
cout << "學號:" << array[j] <<"\n" ;
break;
case 1:
cout << "姓名:" << s1 <<"\n";
break;
case 2:
cout << "化學分數:" << array[j] <<"\n";
break;
case 3:
cout << "工程數學分數:" << array[j] <<"\n";
break;
case 4:
cout << "核心通識分數:" << array[j] <<"\n";
break;
default:
cout << "三科平均:" << array[j] <<"\n";
}}
return 0;
}
基本上已經都弄好了 但是有兩個問題
1.竟然會沒辦法排序 不知道哪裡出錯了
2.改用資料流的方式來輸入字串 但會變成沒有執行輸入而顯示自串後直接跳到case3
可以請問一下這是為什麼嗎?
也麻煩大哥們看一下小弟我哪裡出錯了 翻過課本了但是看不出個所以然
a19870504 目前離線  
送花文章: 0, 收花文章: 6 篇, 收花: 14 次
回覆時引用此帖