본문 바로가기

CS Study/C

3. do-while / switch / for

1. 최대 정수 구하기

#include <stdio.h>
int main(void) {
	int a, b, c, d, e, temp;
	printf("Enter the number : ");
	scanf_s("%d", &a);
	printf("Enter the number : ");
	scanf_s("%d", &b);
	printf("Enter the number : ");
	scanf_s("%d", &c);
	printf("Enter the number : ");
	scanf_s("%d", &d);
	printf("Enter the number : ");
	scanf_s("%d", &e);
	do {
		if (a < b) {
			temp = a;
			a = b;
			b = temp;
		}
		if (a < c) {
			temp = a;
			a = c;
			c = temp;
		}
		if (a < d) {
			temp = a;
			a = d;
			d = temp;
		}
		if (a < e) {
			temp = a;
			a = e;
			e = temp;
		}
		if (b < c) {
			temp = b;
			b = c;
			c = temp;
		}
		if (b < d) {
			temp = d;
			b = d;
			d = temp;
		}
		if (b < e) {
			temp = b;
			b = e;
			e = temp;
		}
		if (c < d) {
			temp = c;
			c = d;
			d = temp;
		}
		if (c < e) {
			temp = c;
			c = e;
			e = temp;
		}
		if (d < e) {
			temp = d;
			d = e;
			e = temp;
		}
		} while (temp > a && temp > b&&temp > c&&temp > d&&temp > e);
		printf("The largest number is %d", a);
	}

2. 10진수를 2진수로 변환하기

#include <stdio.h>
int main(void) {
	int count;
	for (count = 0; count <= 15; ++count)
		printf("%d, %s%s%s%s\n",count, (((count / 2) / 2) / 2) % 2 == 0 ? "0" : "1", ((count/2)/2) % 2 == 0 ? "0" : "1", (count/2) % 2 == 0 ? "0" : "1", count % 2 == 0 ? "0" : "1");
		
}

3. 승수 구하기

#include <stdio.h>

int main(void) {
	int base,temp_1;
	int exp,temp_2;
	printf("Enter positive number : ");
	scanf_s("%d", &base);
	while (base < 0) {
		printf("Enter positive number : ");
		scanf_s("%d", &base);
	}
	printf("Enter positive number : ");
	scanf_s("%d", &exp);
	while (exp < 0) {
		printf("Enter positive number : ");
		scanf_s("%d", &exp);
	}
	temp_1 = base;
	temp_2 = exp;
	while (exp > 1) {
		temp_1 *= base;
		exp -= 1;
	}
	printf("%d^%d is %d", base, temp_2, temp_1);
}

4. 별모양(마름모) 출력하기

#include <stdio.h>
int main() {
	int i, j;
	
	for (i = 1; i <= (10) / 2; i++) {  
		for (j = 1; j <= 9 - i - 4; j++) { 
			printf(" ");
		}
		for (j = 1; j <= i * 2 - 1; j++) {  
			printf("*");
		}
		printf("\n");
	}
	for (i = 4; i >= 1; i--) {  
		for (j = 1; j <= 5-i; j++) {  
			printf(" ");
		}
		for (j = 1; j <= i * 2 - 1; j++) {  
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

5. 물건 값 계산하기

#include <stdio.h>
int main(void) {
	int a;
	int b;
	double tot=0;


	printf("Enter pairs of item numbers and quantities.\n");
	printf("Enter -1 for the item number to end input.");
	do {
		scanf_s("%d", &a);
		switch (a)
		{
		case -1:
			break;

		case 1:
			scanf_s("%d", &b);
			tot += 2.98*b;
			break;
		case 2:
			scanf_s("%d", &b);
			tot += 4.50*b;
			break;
		case 3:
			scanf_s("%d", &b);
			tot += 9.98*b;
			break;
		case 4:
			scanf_s("%d", &b);
			tot += 4.49*b;
			break;
		case 5:
			scanf_s("%d", &b);
			tot += 6.87*b;
			break;
		
		default:
			printf("Invalid product code : %d\n", a);
			printf("Quantity : %d ", b);
			break;
		}



	} while (a != -1);

	printf("The total retail value  was : %lf", tot);


	

}

6. 10진수를 로마자로 표현하기

#include <stdio.h>
int main()
{
	int num, ten, one;
	int i;
	int a=1;
	printf("Input the value of range edge : ");
	scanf_s("%d", &num);
	
	
	do {
		if (num < 49 || num>101) {
			printf("Wrong input! Range edge should be from 50~ 100");
			break;
		}
		ten = a / 10;
		one = a % 10;
		printf("%d           ", a);
		//10�� �ڸ�
		if (ten < 4)
			for (i = 0; i < ten; i++)
				printf("X");
		else if (ten == 4)
			printf("XL");
		else if (ten >= 5 && ten < 9)
		{
			printf("L");
			for (i = 0; i < (ten - 5); i++)
				printf("X");
		}
		else printf("XC");


		//1���ڸ�
		if (one < 4)
			for (i = 0; i < one; i++)
				printf("I");
		else if (one == 4)
			printf("IV");
		else if (one >= 5 && one < 9)
		{
			printf("V");
			for (i = 0; i < (one - 5); i++)
				printf("I");

		}
		else printf("IX");
		a++;
		printf("\n");

	} while (a <= num && 49<  num < 101);

	

}

'CS Study > C' 카테고리의 다른 글

6. Array / MultiArray / String  (0) 2022.04.06
5. function - recursive  (0) 2022.04.06
4. math.h / time.h  (0) 2022.04.06
2. whlie 문  (0) 2022.04.06
1. basic / scanf / if  (0) 2022.04.06