본문 바로가기

학습공간/C, 프로그래밍기초

[8주차] 다차원 배열, 문자와 문자열 처리 함수

반응형

프로그래밍기초 연습문제 풀이

 

01. 일차원 정수 배열의 MIN, MAX 값 찾기
#include <stdio.h>
void main()
{
 int i,A,B;
 int arr[5] = {50, 30, 70, 80, 90};
 A=arr[0];
 B=arr[0];
 for(i=0; i<5; i++)
 {
  if(A > arr[i])
   A = arr[i];
  if(B < arr[i])
   B = arr[i];
 }
 printf("Min = %d\n",A);
 printf("Max = %d\n",B);
}

02. 일차원 문자 배열의 짝수인덱스 출력하기
#include <stdio.h>
void main()
{
 int i;
 char arr[6] = {'a', 'b', 'c', 'd', 'e', 'f'}; //arr[1], arr[3], arr[5]
 printf("짝수번째 문자 출력 = ");
 for(i=0; i<6; i++)
 {
  if(i%2 != 0)
  printf("%c ",arr[i]);
 }
 printf("\n");
}

03. 이차원 정수 배열(3x3)의 전체 합 구하기, 행렬 반전을 통한 전체 합 구하기
#include <stdio.h>
void main()
{
 int i,j,asum = 0,bsum = 0;
 int arr[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   
 for(i=0; i<3; i++)
 {
  for(j=0; j<3; j++)
  {
   asum += arr[i][j];
   printf("%2d ", arr[i][j]);
  }
  printf("%4d ",asum);
  asum=0;
  printf("\n");
 }
 printf("\n");
 for(j=0; j<3; j++)
 {
  for(i=0; i<3; i++)
  {
   bsum += arr[i][j];
  }
 printf("%d ",bsum);
 bsum=0;
 }
 printf("\n");
}

05. 일차원 정수 배열의 값을 10개 입력받아 내림차순으로 정렬하기 
#include <stdio.h>
void main()
{
 int arr[10];
 int a,b,num;
 printf("10개의 정수를 입력해 주세요!!\n");
 for(a=0;a<10;a++)
  scanf("%d",&arr[a]);
 num=arr[0];
 for(a=0;a<10;a++)
 {
  for(b=0;b<10;b++)
   if(arr[a]>arr[b])
   {
    num=arr[b];
    arr[b]=arr[a];
    arr[a]=num;
   }
 }
 printf("내림차순 한 결과입니다.!!\n");
 for(a=0;a<10;a++)
  printf("%d ",arr[a]);
}

07. 일차원 문자 배열에서 공백의 갯수 출력하기 
#include <stdio.h>
void main()
{
 char arr[]="I love you ";
 int a,num=0;
 for(a=0;a<15;a++)
 {
  if(arr[a]==' ')
  {
   num++;
  }
 }
 printf("공백의 수는.. >> %d개 입니다.\n",num);
}

08. 일차원 문자 배열에서 특정 알파벳의 갯수 출력하기 
#include <stdio.h>
void main()
{
 char arr[]="I lOVE YOU ";
 int a,num=0;
 for(a=0;a<15;a++)
 {
  if(arr[a]=='O')
  {
   num++;
  }
 }
 printf("영문자 O 의 수는.. >> %d개 입니다.\n",num);
}

09. 이차원 문자 배열(3x5)에서 이중 for문을 사용하여 값을 출력하기
#include <stdio.h>
void main()
{
 int a,b;
 char arr[3][5]={{'T','U','R','B','O'},{'B','A','S','I','C'},{'C','O','B','O','L'}};
 for(a=0;a<3;a++)
 {
  for(b=0;b<5;b++)
   printf("%c ",arr[a][b]);
  printf("\n");
 }
}

10. 이차원 문자 배열(3x5)에서 이중 for문을 사용하여 값을 출력하기(행렬 반전을 통한 값 출력하기)

#include <stdio.h>
void main()
{
 int a,b;
 char arr[3][5]={{'T','U','R','B','O'},{'B','A','S','I','C'},{'C','O','B','O','L'}};
 for(a=0;a<5;a++)
 {
  for(b=0;b<3;b++)
   printf("%c ",arr[b][a]);
  printf("\n");
 }
}

11. 이차원 정수 배열(3x3)의 출력 결과를 적어보기 
#include <stdio.h>
void main()
{
 int a[3][3]={{3,7,9},{3,6,2},{4,7,9}};
 int i,j;
 
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   printf("%d ", a[i][j]);
  }
  printf("\n");
 }
 printf("\n\n\n\n");
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   printf("%d ", a[i][j]);
  }
 }
 
 printf("\n\n\n\n");
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   printf("%d ", a[j][i]);
  }
  printf("\n");
 }
}

12. 이차원 정수 배열(4x4)의 출력 결과를 적어보기 
#include <stdio.h>
void main()
{
 int a[4][4]={{1,2,3,5},{3,9,8,6},{5,4,7,4},{7,2,4,9}};
 int i,j;
 int sum=0;
 
 for(i=0;i<4;i++)
 {
  for(j=0;j<4;j++)
  {
   printf("%d ", a[i][j]);
  }
  printf("\n");
 }
 printf("\n");
 for(i=0; i<4; i++)
 {
  for(j=0;j<4;j++)
  {
   if(i==j)
   {
    sum+=a[i][j];
   }
  }
 }
 printf("%d\n",sum);
}

13. 일차원 정수 배열을 사용하여 학생 10명의 점수를 입력 받고, F학점을 받은 학생 인원수를 출력하기(F : 60점 이하)
#include <stdio.h>
void main()
{
 int a[10],p[10],f[10];
 int i,k=0,g=0;
 printf("10명의 점수 입력:");
 for(i=0;i<10;i++)
 {
  scanf("%d",&a[i]);
 }
 for(i=0;i<10;i++)
 {
  if(a[i]>=60)
  {
   p[k]=a[i];
   k++;
  }
  else
  {
   f[g]=a[i];
   g++;
  }
 }
 printf("F인 응시자의 수는 %d명 입니다.\n",g);
}

14. 일차원 문자 배열의 출력 결과를 적어보기 
#include <stdio.h>
void main()
{
 int i,j;
 char a[13]="KOREA WELCOME";
 for(i=0;i<13;i++)
 {
  for(j=0;j<13;j++)
  {
   if(i>=j)
   printf("%c",a[j]);
  }
  printf("\n");
 }
}

반응형