게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 도와주세요 ㅠㅠ
게시물ID : programmer_17189짧은주소 복사하기
작성자 : 해군수병
추천 : 0
조회수 : 413회
댓글수 : 1개
등록시간 : 2016/05/13 12:53:07
옵션
  • 본인삭제금지
#include <stdio.h>
#include <stdlib.h>

void star(int);

void main()
{
   int temp;
   char ttt[100] = { 0, };

   while (1){
      printf("몇개");
      scanf("%[^\n]%*c", &ttt);

      temp = atoi(ttt);
     
      if (temp % 2 == 1 && temp < 101)
      {
         star(temp);
      }

      else if (temp == 0)
         printf("오류\n");
      else
         printf("오류\n");
   }
}

void star(int temp)
{
   int i, j;
   int under = 0;
   for (i = temp; i > 0; i -= 2) {
      for (j = i / 2; j > 0; j--) {
         if (i == temp) under++;
         printf(" ");
      }
      for (j = 0; j < temp - ((i / 2) + (i / 2)); j++) {
         printf("*");
      }
      printf("\n");
   }

   for (i = 1; i <= under; i++) {
      for (j = 0; j < i; j++) {
         printf(" ");
      }
      for (j = 0; j < temp - (i * 2); j++) {
         printf("*");
      }
      printf("\n");
   }
}

줄 수를 입력받은 다음 줄수만큼 별을 찍는 코드인데 문제가 예외처리입니다 ㅠㅠ

조건이 0을 입력받을때까지는 계속 줄 수를 입력받고

공백문자만 입력하거나 또는 1   a  또는 a    5처럼 이렇게 입력받아도 오류가 떠야 되는데 문제가 

문자열이 입력되면 정수값을 0을 리턴해버려서 0을 입력하면 종료 하게 만들 수가 없고 ㅠㅠ a    5를 입력하면 정상적으로 오류메세지가 나오는데

3    a이런식으로 입력하면 3을 넣은 값이 나오더라구요 ㅠㅠㅠㅠ

어떤식으로 예외처리를 해야될까요
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호