- 하나의 양의 정수 X을 입력 받아 다음 수식의 결과를 출력하는 프로그램을 작성
1 + (1+2) + (1+2+3) + (1+2+3+4) + … + (1+2+…+X)- ex) 입력 : 4 출력 : 20
- 10개의 정수를 입력으로 받아, 가장 큰 수부터 내림차순으로 정렬하여 출력하는 프로 그램을 작성
- ex) 입력 :1 3 5 7 9 2 4 6 8 10
출력: 10 9 8 7 6 5 4 3 2 1
- ex) 입력 :1 3 5 7 9 2 4 6 8 10
- 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;
}
- 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;
}
- 사용자로부터 두 개의 시각을 입력 받아서 두 시각 사이의 차이를 계산하여 출력하는 프로그램을 작성
- 시각은 시, 분, 초로 구성되는 구조체로 정의.
- 두 번째 시각이 첫 번째 시각보다 항상 늦은 시각이라고 가정.
- 시간차가 없는 경우에 분과 초만 출력하는 것이 아니라 시 분 초, 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;
}
- 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;
}