#11720
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
using namespace std;
int main() {
//입력 받을 숫자의 개수
int sumCount; //sum.size()
cin >> sumCount;
//입력값 하나씩 저장
vector<int> addnum(sumCount);
int sum = 0;
for (int i = 0; i < sumCount;i++) {
scanf("%1d", &addnum[i]); //vector 원하는 위치에 값 넣기
sum += addnum[i];
}
cout << sum;
}
vector 사용 이유
처음엔, 입력 받은 값들을 array에 저장하려 하였으나, 입력 받을 정수의 개수가 user로부터 값을 받아야 알 수 있으므로, 변수 상태인 sumCount로는 array을 생성할 수 없었다. 이에, 초기에 상수 크기값을 입력하지 않아도 되는 vector에 cin으로 받은 입력값들을 for문을 통해 저장하도록 하였다.
scanf 오류
scanf를 활용한 곳에 오류가 생겨 #define _CRT_SECURE_NO_WARNINGS를 추가해주었다.
C6031오류는 함수 scanf의 반환값을 어딘가에 대입하거나 사용하지 않아서 발생하는 경고이다.
단순히 버려지는 값이 있음을 알리기 위해 안내되는 내용이므로 추가로 코드를 수정하지 않았다.
cin과 scanf의 차이
[ cin ]
- 문자,문자열 등 다양한 데이터 형을 서식문자 없이 변수형에 맞게 자동으로 입력 가능
- 키보드로 입력한 값을 저장할 변수가 받아들이는 형태로 바꿔서 저장
[ scanf ]
- whitespace를 cin은 문자 받을 때 무시하고 저장, scanf는 whitespacd도 저장
- scanf,printf의 속도가 cin보다 더 빠름( 알고리즘 문제시 입출력 속도 차이로 통과여부가 갈리기도)
추가 공부
scanf 사용 없이 '공백 없는 입력값'을 저장하는 법 공부하기!
'Coding > Step By Step' 카테고리의 다른 글
Baekjoon Training / 2차원 vector / #2738 (2) | 2023.02.07 |
---|---|
Baekjoon Training / string / #1110 (1) | 2023.02.06 |
Baekjoon Training / recursion(재귀) / #10872 (0) | 2023.02.04 |
Baekjoon Training / vector / &(reference) / #15596 (0) | 2023.02.03 |
Baekjoon Training / string / find / #10809 (3) | 2023.02.02 |