[210803 TIL] C++ 백준 알고리즘 - 출력값오류가 일어난 이유

Serendipity·2021년 8월 3일
1

C++ 백준 알고리즘

목록 보기
1/14

 

출력값 오류가 나타난 이유

c++에서 문서를 작성하다가 ==등호를 처리하는 과정에서
계속 결과값이 다르게 출력되는 오류를 겪었다.
왜 잘 적은 것 같은데 그러지? 했는데

나는 당시에 cout으로 출력되는 부분을 "쌍따옴표"가 아니라 '따옴표'로
표시해서 그런 것이었다!

이 차이가 없는 줄 알았는데
등호로 된 값을 출력할 때에는 값이 다르구나 하는 것을 깨달았다!



 


 

내가 작성했던 코드

 

이상하게 출력된 값

 
 

 

제대로 출력되게끔 한 코드

 

#include
using namespace std;

int main(void)
{

int A, B;
cin >> A >> B;


if (A > B) 
	cout << ">" << endl;
else if (A < B) 
	cout << "<" << endl;
else 
	cout << "==" << endl;

return 0;

}

윤년문제 코드

사고과정

먼저 400인 걸 털고,
100을 파악하는 게 편하겠다!

사분면판단 코드

이렇게 x 먼저 범위를 정해주고 풀어도 되고,

그냥 x,y 정하고 풀어도 된다.
난 후자가 더 편하다.

구구단 문제 코드


구구단 문제 결과값을 출력할 때, 문자열과 int지정값이 섞여서 어떻게 출력하나 했는데
그냥 <<로 간격을 만들어주면 됐다.
매우 간단!

for (i = 1; i < 10; i++) {
	cout << N << " * "  << i << " = " << N * i << endl;
}

이렇게 말이다! 띄어쓰기도 문자열 안에 넣어주면 끝

 
 


A+B 문제 코드

(시행횟수가 콘솔에 제시 될 예정)

출처 백준

이처럼 시행횟수를 앞서 제시하고,
인자를 2개씩 받아 실행하는 함수의 경우,

int T, cout>>T로 T라는 값을 받을 예정이라는 것이라는 적어두고
들여쓰기를 한 후 for로 반복문을 돌려준다.

이 때 초기조건 T는 앞에서 제시가 되었기 때문에 비워두고
T가 1보다 크거나 같을 때, 혹은 0보다 클 때,
각 횟수마다 T를 1씩 차감한단 조건을 넣어둔다.

그리고 인자 a,b 를 받아 a+b값을 출력하겠다는 내용을 적어두면 끝!!

 


 

02 또 다른 실수

 

이렇게 cin>>을 지정하는 것 처럼
cout 뒤의 부호도 오른쪽을 향하게 꺾은 것..

cin>> 은 오른 쪽.

cout<<은 왼 쪽!!!

 
 


 

03 또 다른 실수

 

C++ 언어는 이렇게 ~이고, ~이고 하는 조건을
&&로 엮어줘야 했다.


그래서 완성하면 이런 코드가 된다!
(90<=x<=100)이 아닌
90<=x && x<=100 !!

그리고 앞의 조건에서 다 처리를 해 줬기 때문에 (상한값)
다음 조건부터는 하한값만 지정해주면 된다. (그게 편하다)
 
 


 

04 또 다른 실수

 
이건 내 실수는 아니지만, 이상한 게 있다면
VS에서 C++ 작업 할 때
프로젝트를 다시 만드는 건 로딩이 걸려서
새로운 파일을 만들고 다른 cpp파일을 비활성화 할 때가 있다.
그런데 그 때 예전 작업의 콘솔창이 나오는 에러? 가 생길때가 있다.

코드의 기억인건지,,,
그럴 땐 아예 새로운 VS프로젝트를 다른 창에 만들고
코드 복사를 하면 보통 해결 된다
그냥 이상한 부분 ㅠ
VS말고 VSC에서 작업하고 싶은데 C++콘솔창을 띄우려면
이것저것 설치해야하고 아직 완벽하게 설치 안 해서 미루고있다
최대한 방법을 찾아서 VSC로 넘어가야지...

 
 


 

1부터 N까지 더하기 (For)

일단 입력받을 n값을 지정하고
for을 돌릴 준비!
(for문과 함께할 초기 값 i과 x도 지정해준다)
그리고 최종 출력할 x값도 적어주기!
 
안의 for문은 n과 i가 같아질때까지 i를 키워주면서 더하기로 한다.

 
 


 

오타들

 
1. #include 에서 #을 빼먹거나,
2. iostream 을 iosteam으로 적거나,
너무 다 오타라서 할 말이 없다,, 고치는 수 밖에..?
3. for 반복문 돌릴 때, 조건문에 최종조건을 넣고 틀린 걸 몰랐다.
흑흑,, 계속 반복할 조건인데 최종조건을 적는 부지런함.. (주의!)

profile
I'm an undergraduate student majoring in Computer Engineering at Inha University. I'm interested in Machine learning developing frameworks, Formal verification, and Concurrency.

0개의 댓글