목적
  - while 반복문을 익힌다.

문제

사용자 삽입 이미지

코드

#include <iostream>

using namespace std;

int main(void)
{
 int i = 123;
 cout << "123와 45사이에 존재하는 9의 배수 : " << endl;
 
 while(i >= 45)
  if(--i % 9 == 0) cout << i << " ";

 return 0;
}

해설
- --i 단항연산자를 통해 1이 빼지고 나서 값을 비교하여 출력합니다. i-- 이면 비교후 1이 빠지므로 값이 맞더라도 1이 적게 출력 됩니다.
- 배수는 원하는 배수로 나누어 나머지가 0이 되는 경우를 말합니다.

참고
  - 유사 문제

Posted by 카켈




목적
  - 단항 연산자에 대해 연습한다.
  - 문자열을 입력 및 조합한 후 출력한다.

문제
사용자 삽입 이미지
코드

#include <iostream>

using namespace std;

int main(void)
{
 char sIn_a[255] = {0};
 char sIn_b[255] = {0};
 int i, j;
 i = j = 0;

 cout << "첫번째 문자열 입력 : ";
 cin.getline(sIn_a,255,'\n');
 cout << "두번째 문자열 입력 : ";
 cin.getline(sIn_b,255,'\n');

 cout << "첫번째 문자열 : ";
 while(sIn_a[i] != 0)
 {
  cout << sIn_a[i];
  i++;

 }

 cout << endl;

 cout << "두번째 문자열 : ";
 while(sIn_b[j] != 0)
 {
  cout << sIn_a[j];
  j++;

 }

 cout << endl;

 cout << "병합된 문자열 : ";
 cout << sIn_a[i] << sIn_b[j] << endl;

 cout << "뒤집힌 문자열 : ";
 
 while(j-- > 0)
   cout << sIn_b[j];

 while(i-- > 0)
   cout << sIn_a[i];
 
 cout << endl;

 return 0;

}


해설
  - 이전 문제들에도 문자열 병합과 출력이 있어서 약간의 변형을 했습니다. cstring / string.h 를 쓰지 않고 병합 출력을 하였습니다.

단항 연산자(unary operator)는 피연산자가 하나면 되는 연산자 입니다. 피연산자는 변수여야 하며(그 자체로는 변하지 않는 l-value) 앞에 붙었느냐 아니면 뒤에 붙었느냐에 따라 달라 집니다.
[피연산자]++ => 쓰는 라인에서는 증가가 없지만 다음 줄에서는 [피연산자]가 1 증가 합니다.
[피연산자]-- => 쓰는 라인에서는 증가가 없지만 다음 줄에서는 [피연산자]가 1 감소 합니다.
++[피연산자] 쓰는 라인에서는 증가가 되며 그 줄 부터 [피연산자]가 1 증가 합니다.
--[피연산자] 쓰는 라인에서는 감소가 되며 그 줄 부터 [피연산자]가 1 감소 합니다.

자세한 사항은 키로그를 참조 하시기 바람니다.

참고
  - 유사 문제
  - http://www.winapi.co.kr/clec/cpp3/28-3-2.htm : 증감 연산자



Posted by 카켈
이전페이지 1 다음페이지