디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 구조제배열 주소값전달 질문점요......

C초보(121.130) 2011.02.28 17:55:40
조회 75 추천 0 댓글 3

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define stu_SIZE 5

 

typedef struct student
{
 int no;
 char name[10];
 int kor, mat, eng;
 int total;
 int award;
 char grd;
 float avg;
}STU;

void InputInfo(STU **p);                                              // 여기가 문제에요!!
void OutputInfo(STU p[]);
void ArrangeInfo(STU *p);
void SearchInfo(STU *p);

int main()
{
 int menu;
 int i;
 
 STU st[stu_SIZE];
 
 while(1)
 {
 system("cls");
 printf("\\n\\n\\t\\t***학생 관리 프로그램***=\\n");
 printf("** 메뉴 **\\n");
 printf("1. 입력\\n2. 출력\\n3. 정렬\\n4. 검색\\n5.종료\\n\\n");
 printf("선택 : [ ]\\b\\b");
 scanf("%d", &menu);
 fflush(stdin);
 system("cls");

 switch(menu)
 {
 case 1:
  InputInfo(&st);
  break;
 case 2:
  OutputInfo(st);
  break;
 case 3:
  ArrangeInfo(st);
  break;
 case 4:
  SearchInfo(st);
  break;
 case 5:
  printf("\\n\\n\\t\\t프로그램을 종료합니다.\\n");
  return 0;
 default:
  printf("올바른 값을 입력해주세요");
  getch();
  continue;
 }
 printf("\\n\\n\\t아무키나 누르면 메뉴로 돌아갑니다.");
 getch();
 system("cls");

 }
 return 0;
}
   
void InputInfo(STU **p)
{
 int i, j;
 for(i=0; i<stu_SIZE; i++)
  {
   system("cls");
   printf("입  력 : [%03d]\\n", i+1);
   p[i]->no = i+1;
   printf("이  름 : ");
   scanf("%s", &p[i]->name);
   fflush(stdin);
   printf("국어점수 : ");
   scanf("%d", &p[i]->kor);
   printf("영어점수 : ");
   scanf("%d", &p[i]->eng);
   printf("수학점수 : ");
   scanf("%d", &p[i]->mat);
   
   p[i]->total = p[i]->eng + p[i]->kor + p[i]->mat;
   p[i]->avg = p[i]->total / 3;
   if(p[i]->avg >= 90)
    p[i]->grd = \'A\';
   else if(p[i]->avg >=80)
    p[i]->grd = \'B\';
   else if(p[i]->avg >=70)
    p[i]->grd = \'C\';
   else if(p[i]->avg >=60)
    p[i]->grd = \'D\';
   else
    p[i]->grd = \'F\';
 }
 p[i]->award = 1;
   
 for(i=0; i<stu_SIZE; i++)
  {
   for(j=0; j<stu_SIZE; j++)
   {
    if(p[i]->avg < p[j]->avg)
     p[i]->award +=1;
   }
  }

}

void OutputInfo(STU p[])
{
 int i;
 printf("\\n\\n\\t\\t*** 성적 출력 ***\\n\\n");
 printf("번호\\t이름  국어  영어  수학  총점\\t평균  등급  순위\\n\\n");
 for(i=0; i<stu_SIZE; i++)
 {
  printf("%d\\t%-5s   %-5d %-5d %d %d\\t%.2f   %c   %d\\n", p[i].no, p[i].name, p[i].kor, p[i].eng, p[i].mat, p[i].total, p[i].avg, p[i].grd, p[i].award);
 }
}

void ArrangeInfo(STU *p)
{
 int i, j;
 int menu;
 STU temp;
 printf("\\n\\n*** 정렬메뉴(평균) ***\\n\\n");
 while(1)
 {
 printf("  1. 오름차순 정렬(작은것부터)\\n   2. 내림차순 정렬(큰 것부터)\\n   3. 이전메뉴\\n\\n");
 printf("선택 : [ ]\\b\\b");
 scanf("%d", &menu);
 fflush(stdin);

 switch(menu)
 {
 case 1:
  for(i=0; i<stu_SIZE; i++)
  {
   for(j=0; j<stu_SIZE; j++)
   {
    if(p[i].avg > p[j].avg)
    {
     temp = p[i];
     p[i] = p[j];
     p[j] = temp;
    }
   }
  }
  printf("\\n\\t\\t오름차순으로 정렬하였습니다.");
  break;
 case 2:
  for(i=0; i<stu_SIZE; i++)
  {
   for(j=0; j<stu_SIZE; j++)
   {
    if(p[i].avg < p[j].avg)
    {
     temp = p[i];
     p[i] = p[j];
     p[j] = temp;
    }
   }
  }
  printf("\\n\\t\\t내림차순으로 정렬하였습니다.");
  break;
 case 3:
  printf("\\n\\t\\t아무키나누르면 메뉴로 돌아갑니다...");
  break;
 default:
  printf("\\n\\t\\t잘못누르셨습니다. 다시 눌러주세요..\\n");  
 
 }
 if(menu == 1 || menu ==2 || menu == 3)
  break;
 }
}

void SearchInfo(STU *p)
{
 int i;
 char srh[10];
 int flat = 0;
 printf("\\n*** 학생 검색 ***\\n");
 printf("검색 이름 입력 : ");
 scanf("%s", srh);
 
 printf("번호\\t이름  국어  영어  수학  총점\\t평균  등급  순위\\n\\n");
 for(i=0; i<stu_SIZE; i++)
 { 
  if(strcmp(srh, p[i].name) == 0)
  {
    printf("%d\\t%-5s   %-5d %-5d %d %d\\t%.2f   %c   %d\\n", p[i].no, p[i].name, p[i].kor, p[i].eng, p[i].mat, p[i].total, p[i].avg, p[i].grd, p[i].award);
    flat = 1;
  }
 } 
}



그냥 값복사로는 구현할 수 있는데 공부하다가 구조체가 20바이트 이상이면 주소값 복사가 효율적이라고 해서 주소값복사를 적용하려고
입력함수만 바꿔봤는데 좀 다른게 구조체 자체가 배열이라 주소값을 받으려면 **p? 좀 생소하지만 써서 돌려봤는데
1.입력을 실행하면 다운되는데 왜그런거에요?ㅠㅠ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
237637 오늘도 형들과 함께하는 자바 질문 [3] 자바배우는넘(175.205) 11.03.09 60 0
237636 아.. 그랬구나.. 생각해보니 그랬다.. 전자과는 어떡해갤로그로 이동합니다. 11.03.09 98 0
237635 윈도우 xp 스누피 질문좀여.. [1] 스누피(124.28) 11.03.09 549 0
237634 형님들 제발 도움의 손길을 뻗쳐주세요 [9] 맛깔(221.139) 11.03.09 94 0
237633 여기 형들이 자주쓰는 코드 메모장 그거 뭐지? [2] 르하소갤로그로 이동합니다. 11.03.09 87 0
237632 임베디드or모바일 경력자형님들 이분야가 어떨거같은지 봐주세용..ㅠㅠ [3] ㅁㄴㅇ(110.35) 11.03.09 97 0
237631 안드로이드 어플리케이션 개발 관련 질문 입니다. [2] 화택씨갤로그로 이동합니다. 11.03.09 80 0
237630 최초의 프로그램은 어떻게 만드나요? [11] 금고래갤로그로 이동합니다. 11.03.09 197 0
237629 복수개의 비디오 스트림이 뭔가요??? 컴돌이(58.77) 11.03.09 38 0
237628 증감 연산자에서 [8] 피타놀갤로그로 이동합니다. 11.03.09 91 0
237627 정규식에서 문자열. 어떻게 표현함? [2] Mayu갤로그로 이동합니다. 11.03.09 43 0
237626 자바도 GUI창으로 나오는 프로그래밍 가능함? [3] Lunatic_狂갤로그로 이동합니다. 11.03.09 114 0
237625 내일 임원면접 보는데 [4] ㅁㄴㄻㄹ갤로그로 이동합니다. 11.03.09 148 0
237624 c++ 배열 질문좀요. [4] rdf(118.42) 11.03.09 75 0
237623 여기 갤러분 중에 혹시 Karel the robot 프로그램 아시나요? [1] ㅇㅇㅇㅇ(219.241) 11.03.09 69 0
237621 C# Extension Method [2] 세브(222.239) 11.03.09 94 0
237620 코딩하면서 반드시 알아야 되는 사람들.. [6] 담배(180.68) 11.03.09 209 0
237619 파티션 c: 40G D:540G [2] 망어ㅠㅠ(175.205) 11.03.09 50 0
237618 횽들, 나 좀비pc 감염된 건가 봐줘! [2] 조비(220.89) 11.03.09 406 0
237617 윈도우7용 vmware는 왜업는거야??? [5] 패등이(175.205) 11.03.09 213 0
237616 객체지향 떡밥 한개 [8] SODmaster갤로그로 이동합니다. 11.03.09 134 0
237613 c언어 안했는데 c++바로 할 수 있음? [1] 푸른레퀴엠갤로그로 이동합니다. 11.03.09 147 0
237612 결국 날은 어두워져 가고... 천한플머(121.139) 11.03.09 55 0
237610 [뒷북]팝통령 [1] LightEach갤로그로 이동합니다. 11.03.09 67 0
237609 프레임워크 의존성이 낮은 설계 [1] SODmaster갤로그로 이동합니다. 11.03.09 58 0
237608 올해 SATA3 USB3.0 대중화 된다면 컴타 바꿀 타이밍인거 같음 [1] 시불라미갤로그로 이동합니다. 11.03.09 112 0
237607 애궁.. 밥시간이내 iljeomobolt갤로그로 이동합니다. 11.03.09 60 0
237606 증강현실 해본 횽들있나.. [31] ㅇㅇㅇㅇ(116.40) 11.03.09 407 0
237604 소니밟기 좋아하는 삼성이 가만히 있겠냐? 계백(61.255) 11.03.09 87 0
237602 안드로이드고 아이폰이고 앱은 다 사라질텐데 ㅉㅉ [8] 계백(61.255) 11.03.09 195 0
237601 형들 magik이란언어 아는사람? [1] 탱킹갤로그로 이동합니다. 11.03.09 252 0
237600 아래 뽀로로 이야기가 나와서 [1] 허허벌판갤로그로 이동합니다. 11.03.09 96 0
237598 언어에 자신없으면 리눅스하세요 [2] ㅇㅇㅇ(175.205) 11.03.09 136 0
237597 램디스크 [1] 때릴꺼야?(211.48) 11.03.09 89 0
237596 프로그래밍자격증잇으신분? [4] xxx(211.54) 11.03.09 138 0
237594 android aidl 인터페이스 질문좀.. [6] ㅂㅌㄹ(175.118) 11.03.09 905 0
237592 병신같은 테스트 [1] 유리한갤로그로 이동합니다. 11.03.09 124 0
237591 쓰리 티어라는 말이 뭐냐? [14] 물속의다이아갤로그로 이동합니다. 11.03.09 326 0
237590 횽아들 2진법 2의 보수 계산법좀 알려줘 [3] 쿤이다갤로그로 이동합니다. 11.03.09 188 1
237589 포트란 어 기초 개념을 모르겠다. 플갤(128.134) 11.03.09 35 0
237588 안드로이드 한글입력기 개발하고싶은데, 책 추천좀 부탁드려요 [3] 원래궁핍갤로그로 이동합니다. 11.03.09 161 0
237587 우리나라는 왜 이런 게임 안 만들지? [13] ㅇㅇ(121.133) 11.03.09 362 0
237585 자바 마이그레이션할 때 주의점 천회장(125.7) 11.03.09 69 0
237584 알바 언니야 너무 한다. 구제역 때문에 죽어간 돼지 를 위해 돼지 사진 [1] iljeomobolt갤로그로 이동합니다. 11.03.09 122 0
237583 1번 악마 iljeomobolt갤로그로 이동합니다. 11.03.09 59 0
237582 오늘 교양수업 첫시간을 듣고 왔는데 [2] 일광면(61.100) 11.03.09 181 0
237581 에러나는 이유가 뭐냐(수정) [7] ㄴㄹㄴ(211.227) 11.03.09 106 0
237580 아 자꾸 아마가미 올리는색기누구임? [1] 꿀레(202.30) 11.03.09 71 0
237579 오빠야 횽은 봄.니.다. 물속의다이아갤로그로 이동합니다. 11.03.09 51 0
237578 형들 c++ 간단한 질문여 [2] 1212(114.71) 11.03.09 72 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2