전공/C
과제7 - Array (1 ~ 4)
yha97
2021. 6. 22. 10:51
array size를 입력받고 array 생성, element를 입력받은 후 그 값들을 출력하는 프로그램이다.
#include <stdio.h>
#define MAX_SIZE 1000 // Maximum array size
int main(){
int arr[MAX_SIZE]; // declare array
int n, i;
// inputs size of array from user
printf("Enter size of array: ");
scanf("%d", &n);
// inputs elements in the array
printf("Enter %d elements in the array : ", n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
// print output
printf("\nElements in array are: ");
for(i=0; i<n; i++){
printf("%d, ", arr[i]);
}
return 0;
}
array size를 입력받은 후 element를 입력받고 나서 모든 요소 값의 총합을 출력하는 프로그램
#include <stdio.h>
#define MAX_SIZE 100 // Maximum array size
int main(){
int arr[MAX_SIZE]; // declare array
int n, i, total=0;
// inputs size of array from user
printf("Enter size of array: ");
scanf("%d", &n);
// inputs elements in the array
printf("Enter %d elements in the array : ", n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
total+=arr[i];
}
// print output
printf("Sum of all elements of array = %d", total);
return 0;
}
total을 초기화한 후 입력과 동시에 total+=arr[i];를 통해 곧바로 연산을 진행하였다.
array size를 입력받은 후 그 배열의 최댓값과 두번째로 큰 값을 출력하는 프로그램이다.
최댓값은 쉽게 구했지만 두번째로 큰 값을 어떻게 간단하게 도출할까 생각하다가 꽤 오래 고민했던 기억이 있다.
#include <stdio.h>
#define MAX_SIZE 1000 // Maximum array size
int main(){
int arr[MAX_SIZE]; // declare array
int n, i;
int lar=-1, sec=-1;
// inputs size of array from user
printf("Enter size of array (1-1000): ");
scanf("%d", &n);
if(n < 1 || n > 1000) // not in range
return 0;
// inputs elements in the array
printf("Enterelements in the array : ");
for(i=0; i<n; i++){
scanf("%d", &arr[i]); // Entering element
if(lar < arr[i]) // setting largest number
lar = arr[i];
}
// setting secondary largest number
for(i=0; i<n; i++){
if(arr[i] > sec && arr[i] < lar)
sec = arr[i];
}
// print output
printf("First largest = %d\n", lar);
printf("Second largest = %d", sec);
return 0;
}
largest의 경우에는 입력과 동시에 곧바로 설정이 가능했지만 두번째로 큰 값의 경우에는 입력받은 이후 또다시 for문을 통해서 값을 구하는 방식으로 진행했다.
lar보다는 작지만 그 중에서 가장 큰 값을 구해야 했기 때문에 if(arr[i] > sec && arr[i] < lar)을 통해 sec값을 도출했다.
array size를 입력받고 나서 element 값을 출력, 홀수와 짝수의 개수를 출력하는 프로그램이다.
#include <stdio.h>
#define MAX_SIZE 100 // Maximum array size
int main(){
int arr[MAX_SIZE]; // declare array
int n, i;
int odd = 0, even = 0;
// inputs size of array from user
printf("Enter size of array: ");
scanf("%d", &n);
// inputs elements in the array
printf("Enter elements in the array : ");
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
if(arr[i] % 2 == 0) // if entered number is even
even++;
else // // if entered number is odd
odd++;
}
// print output
printf("Total even elements: %d\n", even);
printf("Total odd elements: %d", odd);
return 0;
}
입력과 동시에 홀수와 짝수를 판별하여 값을 증가시키는 방식으로 문제를 해결했다.