본문 바로가기

Coding/문제풀이 중심의 C언어 연습

문제풀이 중심의 C언어 연습 3장 실습문제

문제 3-1

#include <stdio.h>

int main(){
	char text;
	printf("한 문자 입력: ");
	scanf("%c", &text);
	printf("출력: %c", text);
}

 

문제 3-2

#include <stdio.h>

int main(){
	char c;
	printf("한 문자 입력: ");
	c = getchar();
	printf("출력: ");
    putchar(c);
}

 

문제 3-3

#include <stdio.h>

int main(){
	char c;
    printf("한 문자 입력: ");
	c = getchar();
	printf("입력한 문자(%c)의 ASCII값: %d", c, c);
}

 

문제 3-4

#include <stdio.h>

int main(){
	int no, in, out;
	scanf("%d %d %d", &no, &in, &out);
	printf("%5d%-5d%05d", no, in, out);
}

 

문제 3-5

#include <stdio.h>

int main(){
	float no, in, out;
	scanf("%f %f %f", &no, &in, &out);
    printf("%4.2f%-5.1f%05.0f", no, in, out);
}

 

문제 3-6

#include <stdio.h>

int main(){
	int no, count;
	printf("정수 입력: ");
	scanf("%d %d", &no, &count);
	printf("%d과 %d의 합은 %d입니다.", no, count, no + count);
}

 

문제 3-7

#include <stdio.h>

int main(){
	int no;
	printf("양의 정수: ");
	scanf("%d", &no);
	printf("8진수: %o\n16진수: %x", no, no);
}

 

문제 3-8

#include <stdio.h>

int main(){
	float f;
	printf("실수값을 입력하세요: ");
	scanf("%f", &f);
	f = f / 2;
	printf("결과: %.2f", f);
}

 

문제 3-9

#include <stdio.h>
#include <stdlib.h> // abs() 함수 이용을 위함

int main(){
	int value[5];

	for (int i = 0; i < 5 ; i++){
		scanf("%d", &val[i]);
	}

	int max, min, i;
    
	// 최댓값, 최솟값 설정하기
	max = min = value[0];
    
    for (int i = 1; i < 5 ; i++){
		if (value[i] > max) max = value[i];
		if (value[i] < min) min = value[i];
	}
    
	if (min < 0){
		min = abs(min);
	}
    
    // 자릿수 구하기 : 10으로 계속 나눠서 0이 되면 카운트를 그만둔다.
	int n = 0;
	int bigger_value;

	if (max > min){
		bigger_value = max;
	}
	else if (max < min){
		bigger_value = min;
	}
	else if (max == min){
		bigger_value = max;
		bigger_value = min;
	}
    
	for (i = 10; bigger_value > 0; n++)
		bigger_value = bigger_value / i;
        
	// 평균 구하기

	float ave = 0;
    
	for (int i = 0 ; i < 5 ; i++){
		ave += value[i];
	}
	ave = ave / 5;

	// 최대 9자리 정수까지 입력된다고 가정한다.
	switch(n){
	case 1:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%1d\n", value[i]);
		}
		break;
	case 2:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%2d\n", value[i]);
		}
		break;
	case 3:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%3d\n", value[i]);
		}
		break;
	case 4:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%4d\n", value[i]);
		}
		break;
	case 5:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%5d\n", value[i]);
		}
		break;
	case 6:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%6d\n", value[i]);
		}
		break;
	case 7:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%7d\n", value[i]);
		}
		break;
	case 8:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%8d\n", value[i]);
		}
		break;
	case 9:
    	for (int i = 0 ; i < 5 ; i++){
			printf("%9d\n", value[i]);
		}
		break;
	}
    
	printf("---------\n");
	printf("%.1f\n", ave);
}

 

문제 3-10

#include <stdio.h>

int main(){
	float f, c;
	printf("화씨온도를 입력하세요: ");
	scanf("%f", &f);
	c = (5.0 / 9.0) * (f - 32);
	printf("섭씨온도는 %.f입니다.", c);
}

문제 3-11

#include <stdio.h>

int main(){
	float f;
	printf("실수를 입력하세요 (소수점 4자리까지) : ");
	scanf("%f", &f);
	printf("소수점 3자리: %.3\n", f);
   	printf("소수점 2자리: %.2\n", f);
	printf("소수점 1자리: %.1\n", f);
}

 

문제 3-12

#include <stdio.h>

int main(){
	char name[10];
	int age;
	printf("이름: ");
	scanf("%s", name);
	printf("나이: ");
	scanf("%d", &age);
	printf("%s의 나이는 %d세입니다.", name, age);
}

 

문제 3-13

#include <stdio.h>

int main(){
	char addr[20];
	printf("주소: ");
	gets(addr);
	printf("%s", addr);
}