게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 어디가문제인지좀 봐주세요
게시물ID : programmer_11447짧은주소 복사하기
작성자 : 수원오징어
추천 : 0
조회수 : 375회
댓글수 : 2개
등록시간 : 2015/06/20 09:58:08
옵션
  • 본인삭제금지
#include <stdio.h> 
void print(); 
void print1();
void input(int n);
void subject(int n);
void resultprint(int n);
void Swap(int n);
int num[100][100];
double avg[100];
double avg1[100];
int main()       
{        
 int n;  
 print();  
 printf("성적 처리할 학생들이 몇명입니까? "); 
 scanf("%d",&n);      
 input(n);        
 Swap(n);  
 print1(); 
 resultprint(n);
 subject(n);  
 return 0;
}
void print()
{     
 printf("┌─────────────┐\n");
 printf("│성적 처리 프로그램입니다. │\n");
 printf("└─────────────┘\n");
}
void input(int n)
{   
 int i, j = 0;
 int sum; 
 for (i = 0; i < n; i++)
 {       
  printf("%d번째 학생의 학번을 입력하고 Enter를 누르세요=", i + 1); 
  scanf("%d", &num[i][0]);       
  printf("국어점수를 입력하고 Enter를 누르세요=");    
  scanf("%d", &num[i][1]);       
  printf("영어점수를 입력하고 Enter를 누르세요=");  
  scanf("%d", &num[i][2]);     
  printf("수학점수를 입력하고 Enter를 누르세요=");
  scanf("%d", &num[i][3]);      
  sum = 0;    
  for (j = 1; j < 4; j++) 
  {       
   sum += num[i][j];
  }    
  avg1[i]=sum/3.0;   
  num[i][4]=sum;  
 }
}
void subject(int n)

 int i,j;
 int kors=0, engs=0,mats=0;
 for(i=0; i<n; i++) 
 {     
  kors+=num[i][1]; 
  engs+=num[i][2];    
  mats+=num[i][3];       
  avg[0]=kors/3.0;      
  avg[1]=engs/3.0;     
  avg[2]=mats/3.0;  
 }
 printf("국어평균: %g\n영어평균:%g\n수학평균:%g\n",avg[0],avg[1],avg[2]);
}
void print1()
{
 printf("┌─────────────────┐\n");  
 printf("│등수순으로 성적처리한 결과입니다. │\n");
 printf("└─────────────────┘\n");
}
void resultprint(int n)
{
 int i;
 printf("학번\t총점\t평균\n");
 for(i=0; i<n; i++)    
  printf("%4d   %4d    %4g\n", num[i][0],num[i][4],avg1[i]);
}
void Swap(int n)
{  
 int i,j;
 int temp,temp1;  
 double temp2;  
 for(i=0; i<n-1;i++)
 {              
  for(j=i+1; j<n; j++)
  {
   if(num[i][4] < num[j][4])   
   {                              
    temp=num[i][0];            
    num[i][0]=num[j][0];     
    num[j][0]=temp;           
    temp1=num[i][4];              
    num[i][4]=num[j][4];              
    num[j][4]=temp1;                   
    temp2=avg1[i];                 
    avg1[i]=avg[j];              
    avg1[j]=temp2;              
   }    
  }
 }
}
코드가좀길어서 죄송합니다만.. 1차원으로짤때는 정렬이 잘됬는데
이렇게 2차원으로바꿧더니 정렬부분이 되긴되는데 3명을 입력받앗으면 첫번째두번째 평균이 0으로 찍히고 세번째는 제대로 나오더군요..
어디가 문제인가요..
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호