[1120] 세 수의 평균

[입력] 세 정수가 입력된다.
[출력] 세 수의 평균을 소수 둘째자리까지 출력하시오.

[입력 예시] 1 2 3
[출력 예시] 2.00

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	float num = 0;
	float temp = 0;

	for (int i = 0; i < 3; i++) {
		scanf("%f", &num);
		temp += num;
	}

	printf("%.2f", temp / 3);

	return 0;
}

[1121] 나머지 구하기

[입력] 두 정수 a, b를 입력받는다.
a는 피제수, b는 제수를 나타낸다.
[출력] 나머지를 출력한다.

[입력 예시] 7 5
[출력 예시] 2

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int num[2] = {};

	scanf("%d %d", &num[0], &num[1]);

	printf("%d", num[0] % num[1]);

	return 0;
}

[1122] 초를 분/초로 변환

[입력] 초가 입력된다.(자연수)
[출력] 분, 초 순서로 출력한다.

[입력 예시] 70
[출력 예시] 1 10

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int count = 0;

	int num = 0;
	scanf("%d", &num);

	while (num >= 60) {
		count += 1;
		num -= 60;
	}

	printf("%d %d", count, num);
	return 0;
}

[1123] 섭씨 온도를 화씨 온도로 변환

[입력] 섭씨 온도가 입력된다. (정수)
[출력] 화씨온도를 소수 셋째자리 까지 출력한다. (실수)

[입력 예시] 30
[출력 예시] 86.000

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	float num = 0;
	scanf("%f", &num);
	num = 1.8 * num + 32;
	printf("%.3f", num);

	return 0;
}

[1124] 분자량 구하기 1

[입력] 화학식이 CxHy 꼴로 입력된다. (1<=x,y<=100)
x,y=1인 경우에도 1을 표시한다.
예) C1H1
[출력] 분자량을 출력한다.

[입력 예시] C3H8
[출력 예시] 44

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define C 12
#define H 1
//문자열끝은 '\0' 문자열 숫자로 만들기는 -'0'
int main(void) {

	int c_num = 0, h_num = 0;
	int temp = 0;
	char arr[10];
	scanf("%s", arr);

	for (int i = 1; arr[i] != '\0'; i++) {
		if (arr[i] < '0' || arr[i]>'9') {
			c_num = temp;
			temp = 0;
		}
		else {
			temp *= 10;
			temp += arr[i] - '0';
		}
	}
	h_num = temp;

	printf("%d", (C * c_num) + (H * h_num));

	return 0;

}

입력 양식이 C3H8이 들어온다고 했을 때 문자와 숫자를 구분해야겠구나 하고 이렇게 코드를 길게 짰다..
그러나 C와 H가 고정적인 자리로만 들어온다면 이렇게 짤 필요가 없다는 걸 모범답안을 보고 깨달았다..ㅠㅠ

아래는 모범답안이다.

#include <stdio.h>

int main(){
	int a, b;
	scanf("C%dH%d", &a, &b);
	printf("%d", a*12+b);
	return 0;
}

[1125] 8진수 16진수 변환

[입력] 10진수 정수 하나가 입력된다.
[출력] 8진수와 16진수를 차례대로 출력한다.
(16진수는 대문자 출력)

[입력 예시] 10
[출력 예시] 12 A

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int num = 0;
	scanf("%d", &num);

	printf("%o %X", num,num);

	return 0;
}

[1126] 정수 계산기

[입력] 두 정수 a, b를 공백으로 분리하여 입력한다.
[출력] 다음 형식으로 출력한다. c, d, e, f, g에 해당되는 수는 실제 계산 결과를 의미한다.
a + b = c
a – b = d
a * b = e
a / b = f
a % b = g

[입력 예시] 5 2
[출력 예시]
5 + 2 = 7
5 – 2 = 3
5 * 2 = 10
5 / 2 = 2
5 % 2 = 1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int num1 = 0, num2 = 0;
	scanf("%d %d", &num1, &num2);

	printf("%d + %d = %d \n", num1, num2, num1 + num2);
	printf("%d - %d = %d \n", num1, num2, num1 - num2);
	printf("%d * %d = %d \n", num1, num2, num1 * num2);
	printf("%d / %d = %d \n", num1, num2, num1 / num2);
	printf("%d %% %d = %d", num1, num2, num1 % num2);

	return 0;
}

[1127] 성적 계산

[입력] ① 반영 비율과 받은 점수를 입력한다.
② 입력 순서는 중간고사 반영비율, 중간고사 점수, 기말고사 반영비율, 기말고사 점수, 수행평가 반영비율, 수행평가 점수 순이다.
③ 반영비율은 실수형, 각 점수는 정수형으로 입력한다.
[출력] 결과를 실수로 출력하되 소수 첫째 자리까지 출력한다.

[입력 예시]
0.3 50
0.4 80
0.3 92
[출력 예시] 74.6

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

typedef struct {
	float reflected_ratio;
	int score;
}mystruct;

int main(void) {

	mystruct info[3] = {0,};

	for (int i = 0; i < 3; i++) {
		scanf("%f %d", &info[i].reflected_ratio, &info[i].score);
	}

	printf("%.1f",
		(info[0].reflected_ratio * info[0].score) +
		(info[1].reflected_ratio * info[1].score) +
		(info[2].reflected_ratio * info[2].score));

	return 0;
}

[1128] n * 123456789

[입력] 정수 n이 입력된다.(0<=n<=100)
[출력] n×123456789 의 결과를 출력한다.

[입력 예시] 1
[출력 예시] 123456789

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int arr[] = {0,0,1,2,3,4,5,6,7,8,9};
	int num = 0;
	int print_index = 0;

	scanf("%d", &num);
	for (int i = 2; i <= 10; i++) {
		arr[i] *= num;
	}

	for (int i = 10; i >= 0; i--) {
		if (arr[i] >= 100) {
			arr[i - 2] += arr[i] / 100;
			arr[i] %= 100;
		}
		if (arr[i] >= 10) {
			arr[i - 1] += arr[i] / 10;
			arr[i] %= 10;
		}
	}	

	if (arr[print_index] == 0) {
		print_index++;
		if (arr[print_index] == 0) {
			print_index++;
		}
	}

	for (; print_index <= 10; print_index++) {		
		printf("%d", arr[print_index]);
	}

	return 0;
}

이 문제에서는 long, double, float이 금지키워드였다.
그래서 당연히 lld도 쓰면 안되는 건 줄 알고 이렇게 배열을 사용해서 복잡하게 풀어놨는데..
모범 답안을 보니 아니였다. -_- 변수 선언만 안되는 것이였을 뿐 printf 에서는 lld를 사용해도 되는 것 이었다..
아래는 모범소스이다.

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%lld",n*123456789LL);

}

태그:

Cpp

카테고리:

업데이트:

댓글남기기