IT/프로젝트 및 실습 컴퓨터 프로그래밍 설계 과제#2_HW02 리드론 2017. 10. 20. 02:18 #include <stdio.h> #include <stdlib.h> #include <math.h> int isSquarenumber(int num); //제곱 수 체크함수의 선언 int main(void){ int num = 0; int flag = 0; //이중루프 탈출을 위한 플래그 char input_char; while(1){ int check = 0; printf("Enter an integer: "); scanf("%d", &num); fflush(stdin); //버퍼 비우기 printf("\n"); //문제 조건(2)에 의한 개행 check = isSquarenumber(num); //제곱 수일 경우 1반환, 아닐경우 0 반환 if(check == 1) {//제곱 수 일때 printf("Next square number : %d \n", (int) ((sqrt((double)num)+1)*(sqrt((double)num)+1)) ); } else { //제곱 수가 아닐때 printf("%d is not a square number. \n", num); } while(1){ printf("Enter C/c for continue or Q/q for quit : "); scanf("%c", &input_char); fflush(stdin); //버퍼 비우기 if(input_char == 'C' || input_char == 'c' || input_char == 'Q' || input_char == 'q'){ if(input_char == 'C' || input_char == 'c'){ flag = 0; //없어도 되지만 명시적으로 씀 printf("\n"); //가독성을 위한 개행출력 break; } else{ flag = 1; printf("프로그램을 종료합니다.\n"); break; } } else{ //지정된 문자를 입력하지 않을경우 메세지 출력 후 반복문을 다시돌림 printf("지정되지 않은 문자입니다.\n"); } } //두번째 반복문 //프로그램 종료를 위한 'q'나 'Q'입력시 플래그 설정으로 인한 반복문 탈출후 종료 if(flag == 1) { break; } } //첫번째 반복문 system("PAUSE > NUL"); //콘솔창이 바로 종료되는것을 방지되기 위한 return 0; } int isSquarenumber(int num){ int i = 0; while((i*i) <= num) { //특정수의 제곱이 입력한 수보다 작을때 까지 if(i*i == num) { return 1; } else { i++; } } //printf("반복체크 탈출\n"); return 0; } 저작자표시 변경금지 (새창열림)