728x90
728x170
1번
#include<stdio.h>
int main() {
int i; //for 문에서 사용할 부분
char source[3]={'A','B','C'}; //원본 배열
char target[6]; //복사할 대상이 되는 배열
for(i=0;i<3;i++) { //0~2까지 프린트및 복사
target[i]=source[i];
printf("%c",source[i]);
}
printf("\n");
for(i=0;i<3;i++) //3~5까지 복사
target[5-i]=source[i];
for(i=0;i<6;i++) //프린트
printf("%c",target[i]);
printf("\n");
return 0;
}
/*
배열에 대해 이해하고 있는 지 묻는 문제입니다.
3개의 원소를 가진 배열과 6개의 원소를 가진 배열을 만들고
배열에 있는 값을 다른 배열에 옮겨보는 것이 문제의 핵심입니다.
배열의 인덱스가 어떤 의미를 가지는 지도 알아야 하며
이 해답에서는 먼저 0~2까지, 즉 source의 3개의 원소를 모두
출력하면서 target에 복사를 하였고
5-i를 이용하여 역순으로 복사를 하였습니다.
*/
2번
#include <stdio.h>
int main () {
int jumsu[10], i, sum=0;
for (i = 0; i < 10; i++) {
printf("%d번째 학생의 점수는? ", i+1);
scanf("%d", &jumsu[i]);
}
for (i = 0; i < 10; i++)
sum += jumsu[i]; // sum = sum + jumsu[i];
printf("총점 %d, 평균 %lf\n", sum, (double)sum/10);
return 0;
}
3번
#include <stdio.h>
int main () {
int arr[15] = {90, 78, 77, 98, 98,
80, 45, 67, 88, 57,
88, 99, 65, 55, 74};
int horizonSum[3] = {0};
int verticalSum[5] = {0};
int totalSum = 0;
int i;
for (i = 0; i < 15; i++) {
horizonSum[i/5] += arr[i];
verticalSum[i%5] += arr[i];
totalSum += arr[i];
}
printf("가로줄의 합은 각각 ");
for (i = 0; i < 3; i++)
printf("%d ", horizonSum[i]);
printf("이며, \n세로줄의 합은 각각 ");
for (i = 0; i < 5; i++)
printf("%d ", verticalSum[i]);
printf("이며, \n총 합은 %d 입니다.\n", totalSum);
return 0;
}
/*
배열은 테이블의 값을 가로로 읽어나가며 1차원 배열에 순서대로 값을 저장합니다.
가로줄의 경우 배열 인덱스를 5로 나눈 몫을 사용하면 0, 1, 2 번째 행의 합을 계산할 수 있습니다.
세로줄의 경우 배열 인덱스를 3으로 나눈 나머지를 사용하면 0, 1, 2, 3, 4 번째 열의 값을 계산할 수 있습니다.
*/
4번
#include <stdio.h>
int main () {
int arr[9] = {0};
int inputNum = 0, i = 0;
printf("구구단을 계산할 수를 입력하세요: ");
scanf("%d", &inputNum);
for (i = 0; i < 9; i++)
arr[i] = inputNum * (i+1);
for (i = 0; i < 9; i++)
printf("%d x %d = %d\n", inputNum, i+1, arr[i]);
return 0;
}
5번
#include <stdio.h>
int main () {
double arr1[5] = {2.2, 3.5, 2.5, 10.1, 4.0};
double arr2[5] = {3.3, 2.0, 4.0, 1.0, 2.5};
int i;
for (i = 0; i < 5; i++)
printf("%d 번째 수들의 곱은 %lf\n", i+1, arr1[i]*arr2[i]);
return 0;
}
6번
#include <stdio.h>
int main () {
char array1[5] = {'A', 'B', 'C', 'D', 'E'};
int array2[5] = {10, 20, 30, 40, 50};
double array3[5] = {10.1, 20.2, 30.3, 40.4, 50.5};
int i;
for (i = 0; i < 5; i++)
printf("array1의 %d 번째 수의 주소는 %X, 값은 %c 입니다.\n", i, &array1[i], *(array1+i));
for (i = 0; i < 5; i++)
printf("array2의 %d 번째 수의 주소는 %X, 값은 %d 입니다.\n", i, &array2[i], *(array2+i));
for (i = 0; i < 5; i++)
printf("array3의 %d 번째 수의 주소는 %X, 값은 %lf 입니다.\n", i, &array3[i], *(array3+i));
return 0;
}
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
C언어 본색 파트2 Chapter 3 연습문제 솔루션 (0) | 2021.05.31 |
---|---|
C언어 본색 파트2 Chapter 2 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 9 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 8 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 7 연습문제 솔루션 (0) | 2021.05.31 |
댓글