순차적탐색 질문입니다...ㅠㅜㅠㅜ
연하얀
일단 먼저 소스부터 올려보께요,,,실행안되는 부분이 제가 질문하는 부분입니다..
#include iostream
#include fstream
#include iomanip
#include cstdlib
#include cctype
using namespace std;
const int STUNUM = 50;
const int EXAM = 6;
void input(ifstream& stuFile,int stu[][EXAM],int& index);
void writeStuu(int stu[][EXAM],int index);
int calAvrg(int stu[][EXAM],int count,int index);
int low(int stu[][EXAM],int count,int index);
/////
void search(int stu[][EXAM],int count, int index);
//////
void sort(int stu[][EXAM],int index);
int main()
{
ifstream stuFile;
stuFile.open(inputstu.TXT);
if(!stuFile)
{
cerr\aError k \n;
exit(100);
}
ofstream gradesFile;
gradesFile.open(stugrade.TXT);
if(!gradesFile)
{
cerr\aError k \n;
exit(102);
}
int stu[STUNUM][EXAM];
int index=0;
input(stuFile,stu,index);
sort(stu,index);
writeStuu(stu,index);
search(stu);
stuFile.close();
gradesFile.close();
return 0;
} //main
void input(ifstream& stuFile,int stu[][EXAM],int& index)
{
bool a = true;
while(a)
{
stuFile stu[index][0]
stu[index][1]
stu[index][2]
stu[index][3]
stu[index][4]
stu[index][5];
if(!stuFile)
a=false;
if(a)index++;
}
}
int calAvrg(int stu[][EXAM],int count,int index)
{
int avrg=0;
for(int i=0;iindex;i++)
{
avrg += stu[i][count];
}
avrg /= index;
return avrg;
}
int low(int stu[][EXAM],int count,int index)
{
int lownum = stu[0][count];
for(int i=0 ; iindex-1 ; i++)
{
if(stu[i+1][count] stu[i][count])
{
lownum = stu[i+1][count];
}
}
return lownum;
}
void sort(int stu[][EXAM],int index)
{
int temp[STUNUM][6];
for(int i=0;iindex;i++)
{
if(stu[i][0] stu[i+1][0])
{
for(int j=0;j6;j++)
{
temp[i][j]=stu[i+1][j];
stu[i+1][j]=stu[i][j];
stu[i][j]=temp[i][j];
}
}
}
}
///////////////////////////////////탐색함수
void search(int stu[][EXAM]){
int searchid;
cin searchid;
for(int i=0; i 50; i++)
{
if(stu[i][0] == searchid)
{
for(int j=0;j6;j++)
{
cout setw(5)stu[i][j];
}
cout endl;
}
else
cout 명단에 없습니다;
}
return;
}
////////////////////////////////////////////////////////////////////////////// 출력부분
void writeStuu(int stu[][EXAM],int index)
{
cout setw(5)Studentsetw(5)Quiz1setw(5)Quiz2
setw(5)Quiz3setw(5)Quiz4setw(5)Quiz5 endl;
for(int i=0;iindex;i++)
{
for(int j=0;j6;j++)
{
cout setw(5)stu[i][j];
}
cout endl;
}
cout setw(5)Lowendl;
cout setw(5)Score;
for(int e=1;e=5;e++)
{
cout setw(5) low(stu,e,index);
}
cout endl;
cout setw(5) Avrgendl;
cout setw(5)Score;
for(int d=1;d=5;d++)
{
cout setw(5) calAvrg(stu,d,index);
}
cout endl;
cout 아이디를 입력하세요 : ;
///////////
////////////////
return;
}
--------input.txt
1234 052 007 100 078 034
2134 090 036 090 077 030
3124 100 045 020 090 070
4532 011 017 081 032 077
질문?P질문드리겠습니다....먼저 문제는요,,,아이디를 입력받아서 그에 해당하는 아이디를 찾은 다음 그학생만 출력하는거든요,,
예를 들면
아이디를 입력하세요: 2134
2134 090 036 090 077 030
이런 식입니다...탐색하는 함수를 어떻게 하는지 모르겠네요,,,수정 부탁드릴게요,,,다른 부분은 정상으로 되는거기때문에
아이디 입력받아서 출력하는 부분만 한번 봐주시면 됩니다...감사합니다..