본문 바로가기

C언어

C언어 3주차

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

int main(void){

	int frac[2][2] = { 0 };
	float max = 0;
	int count = 0;
	int count_r;
	count_r = count;

	scanf("%d %d", &frac[0][0], &frac[0][1]);
	scanf("%d %d", &frac[1][0], &frac[1][1]);
	float x = ((float)frac[0][0] / frac[1][0]) + ((float)frac[0][1] / frac[1][1]);
	if (x > max) {
		max = x;
	}

	for (int i = 0; i < 3; i++) {
		int temp1 = frac[0][1]; //B따로 저장
		frac[0][1] = frac[0][0]; //A를 B로 옮김
		int temp2 = frac[1][1]; //D따로 저장
		frac[1][1] = temp1; //B를 D로 옮김
		frac[0][0] = frac[1][0];
		frac[1][0] = temp2;
		
		count += 1;
		float x = ((float)frac[0][0] / frac[1][0]) + ((float)frac[0][1] / frac[1][1]);
		if (x > max) {
			max = x;
			count_r = count;
		}
	
	}
	printf("%d", count_r);

	return 0;
}

1.배열을 이용하여 입력받습니다. 

2.for문을 이용하여 배열 안의 숫자를 한 칸씩 옮깁니다.

3.한 번 옮긴 뒤 분수가 얼마나 큰지 확인하고, 최댓값인지 확인합니다.

4.횟수를 출력합니다. 

 

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

int main(void){

	int ary[10001] = { 0 };
	int N, K;
	scanf("%d %d", &N, &K);
	int r = 0;
	int count = 1;

	for (int i = 1; i < N+1; i++) {
		if (N % i == 0) {
			ary[count] = i;
			count += 1;
		}
	
	}
	if (count < K) {
		printf("0");
	}
	else {
		printf("%d", ary[K]);
	}

	return 0;
}

1.문제에서 처럼 N과 K로 변수를 만들어준다. 

2.for문을 이용하여 약수들을 구한다.

3.약수의 숫자가 K번째보다 작은 걸 고려하여 출력한다. 

'C언어' 카테고리의 다른 글

3주차 C언어  (0) 2024.09.29
6주차 C언어 추가 과제  (0) 2024.08.07
5주차_C언어  (0) 2024.07.31
C언어 2주차  (0) 2024.07.09
C언어 1차  (0) 2024.07.07