Minwoo Dev.

<윤성우의 열혈 C프로그래밍> :: 11. 1차원 배열 문제풀이 본문

C++

<윤성우의 열혈 C프로그래밍> :: 11. 1차원 배열 문제풀이

itisminu 2023. 9. 4. 12:14
728x90
반응형
SMALL

문제 11-1 

 

문제 1

길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 총 5개의 정수를 입력받자! 그리고 입력이 끝나면 다음의 내용을 출력하도록 예제를 작성해 보자.

  • 입력된 정수 중에서 최댓값
  • 입력된 정수 중에서 최솟값
  • 입력된 정수의 총 합
#include<stdio.h>

int main(void)
{
    int arr[5];
    for(int i=0;i<sizeof(arr)/sizeof(int);i++)
        scanf("%d",&arr[i]);
    
    int max = 0, min = 999;
    int sum = 0;
    for(int i=0;i<sizeof(arr)/sizeof(int);i++){
        if(max<arr[i]){
            max = arr[i];
        }
        if(min>arr[i]){
            min = arr[i];
        }
    }
    for(int i=0;i<sizeof(arr)/sizeof(int);i++){
        sum+=arr[i];
    }

    printf("max : %d, min : %d, sum : %d\n",max,min,sum);


    return 0;
}

 

 

문제 2

char 형 1차원 배열을 선언과 동시에 다음 문장의 내용으로 초기화하고, 초기화 이후에는 저장된 내용을 출력하는 예제를 작성해보자.

#include<stdio.h>

int main(void)
{
    char ch[] = {"Good time"};
    printf("%s\n",ch);

    return 0;
}

 

문제 11-2

 

문제 1

프로그램 사용자로부터 하나의 영단어를 입력 받아서 입력받은 영단어의 길이를 계산하여 출력하는 프로그램을 작성해보자. 예를 들어서 "Array"라는 단어가 입력되면 5가 출력되어야 한다.

#include<stdio.h>

int main(void)
{
    char str[51];
    scanf("%s",str);
    int len = 0;

    for(int i=0;str[i]!='\0';i++){
        len++;
    }

    printf("%d\n",len);
    return 0;
}

 

 

 

문제 2

프로그램 사용자로부터 영단어를 입력 받아서 char형 배열에 저장한다. 그 다음 배열에 저장된 영단어를 역순으로 뒤집는다. 물론 이 때에 널 문자의 위치를 변경해서는 안된다. 뒤집고 나서는 제대로 뒤집혔는지 확인하기 위해서 출력해보자.

#include<stdio.h>

int main(void)
{
    char str[51];
    char rvs_str[51];
    scanf("%s",str);
    int len = 0;

    for(int i=0;str[i]!='\0';i++){
        len++;
    }

    for(int i=0;str[i]!='\0';i++){
        rvs_str[len-1-i] = str[i];
    }
    rvs_str[len] = '\0';

    for(int i=0;rvs_str[i]!='\0';i++){
        printf("%c",rvs_str[i]);
    }
    printf("\n");

    return 0;
}

 

 

문제 3

프로그램 사용자로부터 영단어를 입력받는다. 그리고 나서 입력받은 영단어를 구성하는 문자 중에서 아스키 코드의 값이 가장 큰 문자를 찾아서 출력하는 프로그램을 작성해보자. 예를 들어서 입력된 영단어가 "LOVE" 라면 이 중에서 아스키 코드 값이 가장 큰 문자는 V이므로 V가 출력되어야 한다.

#include<stdio.h>

int main(void)
{
    char str[51];
    scanf("%s",str);
    int max = 0;

    for(int i=0;str[i]!='\0';i++){
        if(max<str[i]){
            max = (int)str[i];
        }
    }
    printf("%c\n",max);
    return 0;
}

728x90
반응형
LIST