1. 하나의 양의 정수 X을 입력 받아 다음 수식의 결과를 출력하는 프로그램을 작성
    1 + (1+2) + (1+2+3) + (1+2+3+4) + … + (1+2+…+X)
    • ex) 입력 : 4 출력 : 20
  2. 10개의 정수를 입력으로 받아, 가장 큰 수부터 내림차순으로 정렬하여 출력하는 프로 그램을 작성
    • ex) 입력 :1 3 5 7 9 2 4 6 8 10
      출력: 10 9 8 7 6 5 4 3 2 1
  • ABC( ) 함수
    • 인자: int 배열, 정수 k
    • 배열의 k 번째 정수부터 마지막 정수(즉, 9번째 정수)중 가장 큰 정수를 찾고, 이를 k 번째 위치의 정수와 교환한다.
    • 반환 값: 없음
  • main( ) 함수
    • 입력되는 정수를 int 형 배열에 저장
    • 배열과 k를 인수로 하여, 함수 ABC( )의 호출을 9번 반복한다. 매 호출 시, k의 값은 0, 1, 2, …. 으로 변한다.
    • 배열에 저장된 정수를 순서대로 출력
#include <stdio.h>
#define SIZE 10 // 배열 사이즈 정의

// Void Swap 함수
void Swap(int arr[], int index, int k){
    int temp = 0;
    temp = arr[index]; 
    arr[index] = arr[k];
    arr[k] = temp;
}

// Void ABC 함수
void ABC(int arr[], int k){
    int temp = 0; //Swap을 위한 임시 저장변수 
    int max = arr[k]; // 최댓값 저장을 위한 Max변수
    int index = 0; // 최대값의 Index를 저장할 변수
    for(int i=k; i<SIZE; i++){
       if(max <=arr[i]){
           max = arr[i];
           index = i;
       }
       else{continue;}
    } //최댓값을 찾으면 Index값을 저장
    Swap(arr, index, k); 
    // 최댓값 Swap
}

int main(){

    int arr[SIZE];
    for(int i=0;i<SIZE; i++ ){
        scanf("%d", &arr[i]);
    } // 배열의 정수 입력

    for(int k=0; k<SIZE; k++){
        ABC(arr, k);
    } // k만큼 함수 구현
    
    for(int i=0; i<SIZE; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}
  1. N개의 정수를 입력 받아 배열에 저장한 후 (N ≤ 50), 다시 배열에서 값을 교환하고 싶 은 인덱스 a 와 b를 입력 받는다. 인덱스 a 와 b 위치의 요소 값들이 교환된 배열을 출력하는 프 로그램을 작성
    입력 : 6↦N
    320146
    24 ↦ab
    출력 : 3 2 4 1 0 6
  • swap( ) 함수
    • 인자: 두 개의 int 포인터 (배열 원소 값이나 인덱스가 인자가 아님에 유의) - 인자가 가리키는 두 변수의 값 교환
    • 반환 값: 없음
  • main( ) 함수
    • 입출력 수행
    • swap( ) 함수를 호출하여 두 개의 값 교환
#include <stdio.h>

int arr[50]; // Global배열 선언
void swap(int *a, int *b){
    int temp = 0;
    temp = arr[*a];
    arr[*a] = arr[*b];
    arr[*b] = temp;
} // Swap 함수

int main(){

    int N ;
    scanf("%d", &N);
    for(int i=0; i<N; i++){
        scanf("%d", &arr[i]);
    } //주어진 N만큼 배열의 값 입력
    int a, b;
    scanf("%d %d", &a, &b);
    //위치를 바꿀 인덱스 입력
    swap(&a, &b); // Swap
    for(int i=0; i<N; i++){
        printf("%d ",arr[i]);
    }
    printf("\n");
    return 0;
}
  1. 사용자로부터 두 개의 시각을 입력 받아서 두 시각 사이의 차이를 계산하여 출력하는 프로그램을 작성
    • 시각은 시, 분, 초로 구성되는 구조체로 정의.
    • 두 번째 시각이 첫 번째 시각보다 항상 늦은 시각이라고 가정.
    • 시간차가 없는 경우에 분과 초만 출력하는 것이 아니라 시 분 초, 0 10 20 으로 출력.

입력 :
102030 ↦ 10시 20분 30초
120510 ↦ 12시 05분 10초
출력 :
1 44 40

#include <stdio.h>

struct Time
{
    int H,M,S;
}; //  시간 ,분 ,초 구조체 생성


int main(){
    struct Time T1; //첫번째 구조체
    struct Time T2; //두번째 구조체
    struct Time answer; //정답 구조체
    scanf("%d %d %d", &T1.H, &T1.M, &T1.S);
    scanf("%d %d %d", &T2.H, &T2.M, &T2.S);
    answer.H = T2.H - T1.H;
    answer.M = T2.M - T1.M;
    answer.S = T2.S - T1.S;

    if(answer.M <0){
        answer.M += 60;
        answer.H --;
    }
    if(answer.S <0){
        answer.S += 60;
        answer.M --;
    }
     //조건을 받아서 시간차 계산

    printf("%d %d %d\n", answer.H, answer.M, answer.S);

    return 0;
}
  1. 5명 학생의 이름과 기말고사 점수를 입력 받아, 평균 이하의 점수를 받은 학생의 이름 을 출력하는 프로그램을 작성

조건

  • 학생의 이름은 공백 없이 최대 9개 영어 문자이다.
  • 1명의 학생의 정보 (이름과 점수)를 저장하는 구조체를 정의하고, 5명의 학생의 정보는 구조 체 배열에 저장

입력 :
akim 75
bkim 85
ckim 65
dkim 95
ekim 100
출력 :
akim
ckim

#include <stdio.h>

struct Info
{
    char* student;
    int score ;
};



int mian(){

    

    return 0;
}