목적
  - 매개변수 입력을 익힌다. 원하는 자릿수의 숫자를 출력을 한다.

문제

사용자 삽입 이미지


코드

#include <iostream>
#include <ctype.h>
#include <cstring>

using namespace std;

int main(void)
{
 char sIn[255] = {0};
 char cSwap = 0;
 int iSpc, iCap, iMin;
 iSpc = iCap = iMin = 0;

 cout << "문자열을 입력하세요 : ";
 cin.getline(sIn, 255, '\n');

 cout << "입력된 문자열 : " << sIn << endl;
 for(int i = 0; i < strlen(sIn); i++)
 {
  for(int j = i; j < strlen(sIn); j++)
  {
   if(sIn[i] > sIn[j])
   {
    cSwap = sIn[i];
    sIn[i] = sIn[j];
    sIn[j] = cSwap;

   }

  }

  if(isspace(sIn[i])) iSpc++;
  if(isupper(sIn[i])) iCap++;
  if(islower(sIn[i])) iMin++;

 }

 cout << "정렬된 문자열 : " << sIn << endl;
 cout << "대문자의 수 : " << iCap << endl;
 cout << "소문자의 수 : " << iMin << endl;

 return 0;

}


해설
  - 간단하게 ctype.h 함수로 대/소/공백문자를 계산했습니다.
  - 다중 for 문으로 문자열의 크기를 비교해서 오름차순으로 정렬했습니다.

참고
  - 유사 문제

Posted by 카켈




1. 목적
  - 다중 for 문을 이해한다.

2. 문제 (점수 : 10 점)
  - 중첩된 for 문을 이용하여 구구단의 일부를 출력하라.
  - 출력 화면

4 * 5 = 20      5 * 5 = 25      6 * 5 = 30      7 * 5 = 35
4 * 6 = 24      5 * 6 = 30      6 * 6 = 36      7 * 6 = 42
4 * 7 = 28      5 * 7 = 35      6 * 7 = 42      7 * 7 = 49
4 * 8 = 32      5 * 8 = 40      6 * 8 = 48      7 * 8 = 56
4 * 9 = 36      5 * 9 = 45      6 * 9 = 54      7 * 9 = 63
Press any key to continue


3. 이해
  - 다중 for 문을 정확히 쓸줄 아는가?

4. 코드

#include <stdio.h>

int main()
{
 int i, j;
 i = j = 0;

 for(i = 5; i <10; i++)
 {
  for(j = 4; j < 8; j++)
  {
   printf("%d * %d = %d\t", j, i, j*i);
  }

  printf("\n");

 }

 return 0;
}


5. 해설
  - 이전에 있던 미니 구구단과 크게 다를게 없습니다.
  - for 조건이 j < 8 일때에는 j 가 8일때 까지만 작동하고 9 부터는 조건이 안 맞기 때문에 for 문을 넘어가 다음 for 문을 적용 받습니다.
  - for 문을 실행할때 가장 안 쪽의 for 문에서 시작 하며 인수를 차례차례 적용 받습니다. 실행단계를  생각하면 이해하기가 쉽습니다.

6. 참고

  - http://www.winapi.co.kr/clec/cpp1/4-2-4.htm : 다중 루프
  - 유사 문제
Posted by 카켈
이전페이지 1 다음페이지