구조체 포인터 2차원배열로 성적표 만드는데 안나오네요...
#include
using namespace std;
struct report{
char name[5][8];
char grade[5];
int a[5][7];
};
void structPrn(report temp);
void structInput(report *pTemp);
void main()
{
report a[5][7];
for(int t=0; t<5; t++){
for(int r=0; r<7; r++){
structInput(&a[t][r]);
}
}
cout<<"학번\t이름\t국어\t영어\t수학\t합계\t평균\t학점";
cout<<"\n----------------------------------------------------------";
for(int t=0; t<5; t++){
for(int r=0; r<7; r++){
structPrn(a[t][r]);
}
}
cout<<"\n----------------------------------------------------------";
}
void structPrn(report temp)
{
for(int t=0; t<5; t++){
for(int r=0; r<7; r++){
if(r==1)
cout<
else if(r==7)
cout<
else
cout<
cout<
}
}
cout<
for(int t=0; t<5; t++){
for(int r=2; r<=4; r++){
temp.a[t][5]+=temp.a[t][r];
temp.a[t][6]=temp.a[t][5]/3.;
}
}
for(t=0; t<5; t++){
if (a[t][6]>=90)
grade[t]='A';
else if(a[t][6]>=80)
grade[t]='B';
else if(a[t][6]>=70)
grade[t]='C';
else if(a[t][6]>=60)
grade[t]='D';
else
grade[t]='F';
}
}
void structInput(report *pTemp)
{
for(int t=0; t<5; t++){
cout<<"학번 입력 : ";
cin>>pTemp->a[t][0];
cout<<"이름 입력 : ";
cin>>pTemp->name[t];
cout<<"국어성적 입력 : ";
cin>>pTemp->a[t][2];
cout<<"영어성적 입력 : ";
cin>>pTemp->a[t][3];
cout<<"수학성적 입력 : ";
cin>>pTemp->a[t][4];
}
}


참고해보세요.
.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
정말 감사합니다
정말 감사합니다. 저기서 제가 순위를 매기고 싶은데 모르겠네요 ㅜ
방긍 작성하신거 수정본입니다.
순위는... 어려우니.
너무 어렵게 하시기보다. 쉽게 한줄씩 만들어보시기 바랍니다.
#include <iostream> #include <string.h> using namespace std; struct report { char name [10][8]; char grade[10]; int a [10][7]; }; void structInput(report *pTemp); int main(int argc, char** argv) { report a; structInput(&a); cout< <"\n------------------------------------------------------------"< <endl; for(int t=0; t<10; t++) { if(a.a[t][6]<=90) { a.grade[t]='A'; cout< <"A "; } else if(a.a[t][6]>=80) { a.grade[t]='B'; cout< <"B "; } else if(a.a[t][6]>=70) { a.grade[t]='C'; cout< <"C "; } else if(a.a[t][6]>=60) { a.grade[t]='D'; cout< <"D "; } else { a.grade[t]='F'; cout< <"E "; } } cout< <"\n------------------------------------------------------------"< <endl; return 0; } void structInput(report *pTemp) { for(int t=0; t<10; t++) { pTemp->a[t][0] = t; strcpy(pTemp->name[t], "TEST"); pTemp->a[t][2] = t; pTemp->a[t][3] = t; pTemp->a[t][4] = t; pTemp->a[t][6] = t+t+t/3; } }----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
죄송하지만 메일로 여쭤봐도 될까요??
실례가 안된다면 메일로 여쭤봐도 될까요?
네이트온으로 접속하시는것이 편할겁니다.
...
shintx@nate.com 네이트온 채팅
shintx@naver.com 메일
알고리즘 책 보시면. 정렬 (소트) 알고리즘 예제가 있습니다.
최소 최대값에 오류가 있어서. 수정해서 다시 올렸습니다.
어쨌든. 방식은 이렇습니다.
#include <iostream> #include <string.h> #include <time.h> using namespace std; int main(int argc, char** argv) { int n[10]; int i=0; srand( time(NULL) ); printf("0 ~ 9까지의 무작위 숫자 10개를 입력\n"); for(i=0; i<10; i++) { n[i] = rand()%(9+1); //0 이면 오류가 발생해서 +1 함. cout < < i < < " " < < n[i] < < endl; } printf("최소값. 최대값 얻기\n"); int min=99; int max=0; for(i=0; i<10; i++) { if(min >= n[i]) { min = n[i]; } if(max <= n[i]) { max = n[i]; } } printf("min [ %d]\n", min); printf("max [ %d]\n", max); int ar[10]; printf("ar 배열 초기화 \n"); for(i=0; i<10; i++) { ar[i] = 0; } printf("정렬\n"); for(i=0; i<10; i++) { if(n[i] == 0) { ar[0] = ar[0] + 1; } if(n[i] == 1) { ar[1] = ar[1] + 1; } if(n[i] == 2) { ar[2] = ar[2] + 1; } if(n[i] == 3) { ar[3] = ar[3] + 1; } if(n[i] == 4) { ar[4] = ar[4] + 1; } if(n[i] == 5) { ar[5] = ar[5] + 1; } if(n[i] == 6) { ar[6] = ar[6] + 1; } if(n[i] == 7) { ar[7] = ar[7] + 1; } if(n[i] == 8) { ar[8] = ar[8] + 1; } if(n[i] == 9) { ar[9] = ar[9] + 1; } } printf("인덱스 출력하기\n"); for(i=0; i<10; i++) { printf("ar[ %d] %d\n", i, ar[i]); } printf("인덱스를 갯수 순서대로 출력하기\n"); int j=0; for(i=0; i<10; i++) { for(j=0; j<ar[i]; j++) { printf("ar[ %d] %d\n", i, ar[i]); } } return 0; } #if 0 출력 0 ~ 9까지의 무작위 숫자 10개를 입력 0 1 1 6 2 9 3 2 4 9 5 8 6 4 7 6 8 8 9 4 최소값. 최대값 얻기 min [1] max [9] ar 배열 초기화 정렬 인덱스 출력하기 ar[0] 0 ar[1] 1 ar[2] 1 ar[3] 0 ar[4] 2 ar[5] 0 ar[6] 2 ar[7] 0 ar[8] 2 ar[9] 2 인덱스를 갯수 순서대로 출력하기 ar[1] 1 ar[2] 1 ar[4] 2 ar[4] 2 ar[6] 2 ar[6] 2 ar[8] 2 ar[8] 2 ar[9] 2 ar[9] 2 -------------------------------- Process exited after 0.08357 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . . #endif나름대로 구현한 예제소스를 추가로 올려봅니다.
아마. 정렬 알고리즘을 사용하시는것이 더 성능이 좋을겁니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
저도 오류가 발생했네요.
cout 에 출력 결과의 순서가 뒤죽 박죽입니다. C++
제가 코딩을 잘못해서인지. 순서가 뒤죽박죽으로 출력 되는 경우가 있었습니다.
printf()로 확인해보시는것도 좋을것 같습니다.
되도록. 복잡하지 않은 코딩을 구현하시는것이 좋을겁니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기