CodeUp C언어 기초 100제 [기초 - 1차원배열] 1093 ~ 1095

jychan99·2021년 8월 19일
0
post-thumbnail
  1. 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.

선생님은 출석부를 보고 번호를 부르는데,
학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.

그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러
이름과 얼굴을 빨리 익히려고 하는 것이다.

출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

입력
첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.

출력
1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.

#include <stdio.h>

int main()
{
    int n,num[23]={0},number,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d ",&number);
        num[number-1]+=1;
    }
    for(i=0;i<23;i++)
    {
        printf("%d ",num[i]);
    }

    return 0;
}

num1차원배열은 23명의 학생이다.
선언부에서 num[23]은 배열의크기가 23이라는것을 나타낸다.
배열의 요소로 접근할때는 num[0]~num[22]까지만 쓰이므로 num[number-1]에 1을 더해줘야 한다,

  1. 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.

학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데,
영일이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다.

출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.

입력
번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.

출력
출석을 부른 번호 순서를 바꾸어 공백을 두고 출력한다

#include <stdio.h>

int main()
{
    int n,i,call[10000]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d ",&call[i]);
    }

    for(i=n-1;i>=0;i--)
    {
        printf("%d ",call[i]);
    }

    return 0;
}

for문 2번돌리면된다. 한번은 차례로 입력, 한번은 거꾸로가면서 출력하면된다.

  1. 정보 선생님은 오늘도 이상한 출석을 부른다.

영일이는 오늘도 다른 생각을 해보았다.
출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지?

출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.

이번에는 배열에 입력된 값중 최솟값을 구하는문제이다.

#include <stdio.h>

int main()
{
    int n,i,number[10000],small;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&number[i]);
    }
    small=number[0];
    for(i=1;i<n;i++)
    {
        if(small>number[i])
        small = number[i];
    }
    printf("%d",small);

    return 0;
}
profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐍

0개의 댓글

Powered by GraphCDN, the GraphQL CDN