본문 바로가기

C언어/자료구조

1장 기본 알고리즘

1. 세 정수의 최댓값 구하기 

 

int main()
{
int a, b, c;

printf("세 정수의 최댓값을 구합니다.\n");
printf("a 값:"); scanf_s("%d", &a);
printf("b 값:"); scanf_s("%d", &b);
printf("c 값:"); scanf_s("%d", &c);

int max = a;
if (b > max) max = b;
if (c > max) max = c;

printf("최댓값은 %d입니다.\n", max);

return 0;
}

 

 

 

2. 세 정수를 입력하고 중앙값을 구하여 출력

 

int med3(int a, int b, int c)
{
if (a >= b)
if (b >= c)
return b;
else if (a <= c)
return a;
else
return c;
else if (a > c)
return a;
else if (b > c)
return c;
else
return b;
}

int main()
{
int a, b, c;

printf("세 정수의 중앙값을 구합니다.\n");
printf("a값:"); scanf_s("%d", &a);
printf("b값:"); scanf_s("%d", &b);
printf("c값:"); scanf_s("%d", &c);

printf("중앙값은 %d입니다.\n", med3(a, b, c));

return 0;
}



3. 양의 정수를 입력하고 자릿수를 출력하는  프로그램

 

int main()
{
int n;

do {
 printf("양의 정수:");
 scanf("%d",&n);
} while(n<=0);

int digits=0;
while(n>0)
{
 n/=10;
 digits++;
}

printf("그 수는 %d 자리입니다.\n",digits);

return 0;
}

 

 

4. 곱셈표를 출력하는 프로그램

 

int main()
{
 printf("  |");
 for (int i = 1; i <= 10; i++)
 {
  printf("%3d", i);
 }
printf("\n----+-----------------------------\n");

for (int i = 1; i <= 9; i++) //바깥쪽 행
{
  printf("%2d |", i);
for (int j = 1; j <= 9; j++)// 안쪽 행
{
  printf("% 3d", i * j);
}
putchar('\n');
}

return 0;
}

 

 

5. 정사각형 출력

 

int main()
{
   printf("정사각형을 출력합니다.\n");
   int n = 0;
   printf("입력할 수 :");
   scanf_s("%d", &n);
for (int i = 1; i <= n; i++)
{
  for (int j = 1; j <= n; j++)
  {
    printf("*");
   }
putchar('\n');
}
}

 

 

6. 입력한 높이와 너비에 맞는 직사각형 출력

 

int main()
{

printf("직사각형을 출력합니다.\n");
int n, k;
printf("높이:"); scanf_s("%d", &n);
printf("너비:"); scanf_s("%d", &k);

for (int i = 1; i <= n; i++)
{
  for (int j = 1; j <= k; j++)
    printf("*");
  printf("\n");
}

return 0;
}

 

 

7. 왼쪽 아래가 직각인 이등변 삼각형

 

int main()
{
int n;
do {
  printf("몇단 삼각형 입니까?:");
  scanf_s("%d", &n);
} while (n <= 0); //n이 음수일때까지 반복 -> 양수 입력하면 빠져나옴 -> 양수 입력조건

for (int i = 1; i <= n; i++)
{
  for (int j = 1; j <= i; j++)
    printf("*");
  putchar('\n');
}

return 0;
}

 

 

8. 왼쪽 위, 오른쪽 위, 오른쪽 아래가 직각인 이등변 삼각형 출력

 

void triangleLU(int n); //왼쪽 위가 직각인 이등변 삼각형을 출력
void triangleRU(int n); //오른쪽 위가 직각인 이등변 삼각형을 출력
void triangleRB(int n); //오른쪽 아래가 직각인 이등변 삼각형을 출력
int main()
{
  triangleLU(5);
  triangleRU(5);
  triangleRB(5);

}

void triangleLU(int n)
{
  printf("왼쪽 위가 직각인 이등변 삼각형");
  printf("단을 입력하시오:");
  scanf_s("%d", &n);

for (int i = n; i >= 1; i--)
{
  for (int j = i; j >= 1; j--)
    printf("*");
  putchar('\n');
}
}

void triangleRU(int n)
{
  printf("오른쪽 위가 직각인 이등변 삼각형");
  printf("단을 입력하시오:");
  scanf_s("%d", &n);

 for (int i = 1; i <= n; i++)
 {
    for (int j = 1; j <= i - 1; j++)
      putchar(' '); 
    for (int j = 1; j <= n - i + 1; j++)
      putchar('*');
    putchar('\n');
}
}

void triangleRB(int n)
{
  printf("오른쪽 아래가 직각인 이등변 삼각형");
  printf("단을 입력하시오:");
  scanf_s("%d", &n);

for (int i = 1; i <= n; i++)
{
   for (int j = 1; j <= n - i; j++)
      putchar(' ');
   for (int j = 1; j <= n - (n - i); j++)
      putchar('*');
   putchar('\n');
}

}

 

 

9. n단의 피라미드를 출력하는 함수 

 

void spria(int n);
int main()
{
  spria(5);
}

void spria(int n)
{
  do {
    printf("피라미드 단 수를 입력하시오");
    scanf_s("%d", &n);
  } while (n <= 0);

  for (int i = 1; i <= n; i++)
  {
    for (int j = 1; j <= n - i; j++)
      putchar(' ');
    for (int j = 1; j <= (i-1)*2+1; j++)
      putchar('*');
   putchar('\n');
}
}

 

10. n단의 숫자 역 피라미드

 

void nrpria(int n);
int main()
{
  nrpria(5);
}

void nrpria(int n)
{
  do {
    printf("피라미드를 출력할 숫자를 적으시오:");
    scanf_s("%d", &n);
 } while (n <= 0);

for (int i = 1; i <= n; i++)
{
  for (int j = 1; j <= (i-1); j++)
    putchar(' ');
  for (int j = 1; j <= 2 * (n - i + 1) - 1; j++)
    printf("%d", i % 10);
  putchar('\n');
}
}

 

'C언어 > 자료구조' 카테고리의 다른 글

3-2장 선형 검색  (0) 2023.07.25
3-1장 검색 알고리즘이란?  (0) 2023.07.25
2-2 구조체란?  (0) 2023.07.24
2-1장 배열(2)  (0) 2023.07.24
2-1 장 배열(1)  (0) 2023.04.08