2008-01-25, 01:56 AM
|
#2 (permalink)
|
長老會員
|
引用:
作者: a19870504
#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
可以請問一下這是為什麼嗎?
也麻煩大哥們看一下小弟我哪裡出錯了 翻過課本了但是看不出個所以然
|
請你安裝 文書編輯 裡 軟體名稱:Notepad++ 軟體版本:4.7.5
自行檢查 { } 成對不一致的地方
此語言我雖然不會, 也看的出 不對地方
|
|
|
送花文章: 41052,
收花文章: 3694 篇, 收花: 12426 次
|