/0217_5.여러명의 이름처리/
#include <stdio.h>
int main()
{
char name[5][15] = {"홍길동", "김 진 수", "강 호동", "남궁 지수", "이진"};
// 홍길동 [0][0]~[0][6], 김진수 [1][0]
int i;
printf("name의 byte수 : %d\n\n", sizeof(name)); // 5* 15* 1byte = 75 byte
for(i=0; i<5; i++)
{
printf("name[%d] : %-10s\n", i, name[i]); // 10칸 확보해서 왼쪽(-) 정렬
}
return 0;
}
//선언은 2차원처럼 보이나 실행은 1차원
/0217_성적처리.c에 이름출력 추가/
/*5명의 data를 입력하여 다음처럼 성적처리!
#1)
이름: 홍 길 동
국어? 88
영어? 87
#2)
.....
------------------------*성적표*---------------------------
이름 국어 영어 총점 평균 평가
XXX XX XX XXX XX.X X
...
평가는 평균이 90이상 A, 80이상 B, 70이상 C, 60이상 D, 60미만 F
*/
#include<stdio.h>
#define Si 5
int main()
{
int i,tot[Si],kor[Si],eng[Si];
double ave[Si];
char grade[Si],name[Si][15];
for(i=0;i<Si;i++)
{
printf("#%d)\n",i+1);
printf("이름? ");
fflush(stdin);
gets(name[i]);//==gets(%name[i][0]);
printf("국어? ");
scanf("%d",&kor[i]);
printf("영어? ");
scanf("%d",&eng[i]);
tot[i]=kor[i]+eng[i];
ave[i]=tot[i]/2.0;
switch((int)ave[i]/10)
{
case 10://맨처음 만나는 break는 전 문장 실행
case 9:grade[i]='A';break;
case 8:grade[i]='B';break;
case 7:grade[i]='C';break;
case 6:grade[i]='D';break;
default:grade[i]='F';//switch문에서 default이하의 break는 생략가능
}
}
printf("--------------------------*성적표*------------------------------\n");
printf("이름\t\t국어\t영어\t총점\t평균 \t평가\n");
for(i=0;i<Si;i++)
{
printf("%-10s\t%3d\t%3d\t%3d\t%5.1f\t%3c\n",name[i],kor[i],eng[i],tot[i],ave[i],grade[i]);
}
return 0;
}
/0217_6등수구하기/
/*6등수구하기.c
점수 등수
-----------
199 3
100 4
200 2
100 4
300 1
*/
#include<stdio.h>
int main()
{
int score[5]={199,100,200,100,300},i,j;
int rank[5];
for(i=0;i<5;i++) //i가 기준
{
rank[i]=1;//비교전에 초기치
for(j=0;j<5;j++)//j가 비교대상
{
if(i==j)continue;//i와j가 같은경우 실행하지 않고 건너뛰게 하기 위해 continue추가
if(score[i] < score[j]) rank[i]++;
}
}
printf("점수\t등수\n");
printf("------------\n");
for(i=0;i<5;i++)
{
printf("%3d\t%3d\n",score[i],rank[i]);
}
return 0;
}
/성적처리 파일에 등수 추가/
#include<stdio.h>
#define Si 5
int main()
{
int i,j,tot[Si],kor[Si],eng[Si],rank[Si];
double ave[Si];
char grade[Si],name[Si][15];
for(i=0;i<Si;i++)
{
printf("#%d)\n",i+1);
printf("이름? ");
fflush(stdin);
gets(name[i]);//==gets(%name[i][0]);
printf("국어? ");
scanf("%d",&kor[i]);
printf("영어? ");
scanf("%d",&eng[i]);
tot[i]=kor[i]+eng[i];
ave[i]=tot[i]/2.0;
switch((int)ave[i]/10)
{
case 10://맨처음 만나는 break는 전 문장 실행
case 9:grade[i]='A';break;
case 8:grade[i]='B';break;
case 7:grade[i]='C';break;
case 6:grade[i]='D';break;
default:grade[i]='F';//switch문에서 default이하의 break는 생략가능
}
}
//등수구하기
for(i=0;i<Si;i++)
{
rank[i]=1;
for(j=0;j<Si;j++)
{
if (i==j) continue;
if(tot[i] < tot[j] ) rank[i]++;
}
}
printf("--------------------------*성적표*------------------------------\n");
printf("이름\t\t국어\t영어\t총점\t평균 \t평가\t등수\n");
for(i=0;i<Si;i++)
{
printf("%-10s\t%3d\t%3d\t%3d\t%5.1f\t%3c\t%3d\n",name[i],kor[i],eng[i],tot[i],ave[i],grade[i],rank[i]);
}
return 0;
}
'PROGRAMMING > C' 카테고리의 다른 글
[대체] 정렬, rank실습 (0) | 2011.02.17 |
---|---|
[대체] 10. 정렬하기 (0) | 2011.02.17 |
[대체] 9.배열 ① 일차원배열 (0) | 2011.02.17 |
[대체] 8.다중반복문 (0) | 2011.02.16 |
[대체] 7. 반복문(do~while) (0) | 2011.02.16 |