전공/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;
}

입력과 동시에 홀수와 짝수를 판별하여 값을 증가시키는 방식으로 문제를 해결했다.