구조체 포인터 2차원배열로 성적표 만드는데 안나오네요...

man17의 이미지

#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];
}
}

shint의 이미지

.

댓글 첨부 파일: 
첨부파일 크기
Package icon 포인터 2차원배열로 성적표.zip382.16 KB

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

man17의 이미지

정말 감사합니다. 저기서 제가 순위를 매기고 싶은데 모르겠네요 ㅜ

shint의 이미지

순위는... 어려우니.

너무 어렵게 하시기보다. 쉽게 한줄씩 만들어보시기 바랍니다.

#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

man17의 이미지

실례가 안된다면 메일로 여쭤봐도 될까요?

shint의 이미지

...

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

shint의 이미지


cout 에 출력 결과의 순서가 뒤죽 박죽입니다. C++

제가 코딩을 잘못해서인지. 순서가 뒤죽박죽으로 출력 되는 경우가 있었습니다.

printf()로 확인해보시는것도 좋을것 같습니다.

되도록. 복잡하지 않은 코딩을 구현하시는것이 좋을겁니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.