문제> 국어 영어 전산 점수를 입력하여 합과 평균을 구한 후
점수>=90점 A 학점
점수>=80점 B 학점
점수>=70점 C 학점
점수>=60점 D 학점
그 이하 점수면 F 학점을 산정하는 프로그램을 작성하시오.(단 Switch case문을 사용할 것)
hint: 평균점수를 정수 화시키는 로직 필요
0 점 ~ 100 점까지만 처리할 수 있도록
문제 풀이)
# include<stdio.h>
# include<conio.h>
void main()
{
int kor, eng, mat, tot;
float ave;
char grade;
clrscr();
printf("국어 영어 수학 점수를 입력하시오. ? ");
scanf("%d %d %d", &kor, &eng, &mat);
tot=kor+eng+mat;
ave=tot/3.0;
switch( (int)ave/10)
{
case 10;
case 9 : grade ='A'; break;
case 8 : grade ='B'; break;
case 7 : grade ='C'; break;
case 6 : grade ='D'; break;
default : grade ='F';
}
printf("국어 = %d 영어 = %d 수학 =%d\n",kor, eng, mat);
printf("총점 = %d 평균 = %6.2f 학점 =%c\n",tot, ave, grade);
getch();
}
문제2)[문제 2]
임의의 세 정수를 입력하여 순서대로 출력하시오
(단 scanf()을 사용할 것)
예) 12, 34, 2
내림차순 : 34 12 2
오름차순 : 2 12 34
hint: 임의의 세수가 정수 형이 아닐 경우 「입력오류」라고 출력되는 예외 처리
(sizeof() 연산자를 활용할 것)
풀이)
# include<stdio.h>
# include<conio.h>
void main()
{
int a,b,c;
int max, midd, min;
printf("Input data of a, b, c ?");
scanf("%d %d %d",&a, &b, &c);
if(a>b)
if(b>c)
max=a,midd=b,min=c;
else if(a>c)
max=a,midd=c,min=b;
else
max=c,midd=a,min=b;
else if(a>c)
max=b,midd=a,min=c;
else if(b>c)
max=b,midd=c,min=a;
else
max=c,midd=b,min=a;
printf(" %d %d %d \n", max,midd,min);
getch();
}
- 이건데여.. 풀이를 다른 방법으로 다시해오라구 해서염.. 다른방법이 없을까요....
|