[Java]
package array;
import java.util.Scanner;
public class Array2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("입력 받을 숫자의 개수: ");
int num = scanner.nextInt();
int[] arr = new int[num];
int total = 0;
System.out.println(num + "개의 정수를 입력하세요:");
for (int i = 0; i < num; i++) {
arr[i] = scanner.nextInt();
total += arr[i];
}
System.out.println("총합: " + total);
}
}
c언어에서는 Java에서와 달리 배열의 크기를 사용자가 입력한 크기로 설정할 수 없다. 하지만, 아래와 같이 동적 할당을 사용하면 사용자가 입력한 크기에 따라 배열을 만들 수 있다.
(C99 표준 이후로는 동적 메모리 할당을 사용하지 않고도 변동 크기 배열(VLA, Variable Length Array)을 사용할 수 있게 되었다고 한다.)
[C언어]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> // 동적 메모리 할당을 위해 필요
int main() {
int num, total = 0;
// 사용자로부터 입력받기
printf("입력 받을 숫자의 개수: ");
scanf("%d", &num);
// 동적으로 배열 크기를 할당
int* arr = (int*)malloc(num * sizeof(int));
if (arr == NULL) {
printf("메모리 할당 실패\n");
return 1; // 메모리 할당 실패 시 프로그램 종료
}
printf("%d개의 정수를 입력하세요:\n", num);
for (int i = 0; i < num; i++) {
scanf("%d", &arr[i]);
total += arr[i];
}
printf("총합: %d\n", total);
// 할당된 메모리 해제
free(arr);
return 0;
}