CS Study/C
3. do-while / switch / for
Ryannn
2022. 4. 6. 13:30
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);
}