아하
생활

생활꿀팁

점잖은다슬기89
점잖은다슬기89

프로그래밍 과제인데 오류가 뜨는 이유를 모르겠어요.

문제는

1~100 사이의 정수(no)를 연속으로 입력 받는다. (while) 단, 0이 입력되면 종료. 입력된 정수 중 최대값/최소값을 출력!

입니다

#include <stdio.h>

#pragma warning(disable:6031)

#pragma warning(disable:4996)

int main()

{

int no = 1, max =0, min = 101;

while (no != 0) {

printf("input value(no): ");

scanf(" %d", &no);

if (no < 101 && no > 0) {

if (no > max)

max = no;

if (no < min)

min = no;

}

else if (no == 0);

else {

printf("error\n");

no = 1;

}

}

if (max == 0 || min == 101)

printf("error");

else

printf("max = %d \nmin = %d\n", max, min);

return 0;

    55글자 더 채워주세요.
    4개의 답변이 있어요!
    • 굳건한비버52
      굳건한비버52

      main 함수를 닫아주는 중괄호가 빠졌네요

      retun 0; 아래에 } 넣어주시면 될거 같습니다!

      프로그래밍 할때 괄호의 위치는 사람마다 다를 수 있으나

      저의 경우에는

      if (no < 101 && no > 0)

      {

      if (no > max)

      max = no;

      if (no < min)

      min = no;

      }

      이런식으로 if문 아래에 여는 괄호를 적어두면 한 눈에 볼 수 있어서 편하다고 생각합니다ㅎㅎ

      프로그래밍을 열심히 배우셔서 좋은 개발자로 거듭나길 바라겠습니다!

    • 안녕하세요

      올려주신 소스코드가 전체 소스가 맞나요? 중괄호 의 갯수가 맞지 않네요.

      들여쓰기를 해보니 main() 에 대한 닫는 중괄호가 없습니다.

      그리고 while 안에 if else if else 를 사용했는데 else if 에는 중괄호가 없습니다. 세미콜론도 없어야할것같습니다.

      그리고 마지막에 return 0; 은 왜 있는것인지 모르겠네요..

      한번 참고해서 다시 코드를 짜보시는게 좋을것 같습니다

    • 무슨 에러가 나오시나요?

      #include <stdio.h> #pragma warning(disable:6031) #pragma warning(disable:4996) int main() { int no = 1, max = 0, min = 101; while (no != 0) { printf("input value(no): "); scanf(" %d", &no); if (no < 101 && no > 0) { if (no > max) max = no; if (no < min) min = no; } else if (no == 0); else { printf("error\n"); no = 1; } } if (max == 0 || min == 101) printf("error"); else printf("max = %d \nmin = %d\n", max, min); return 0; }

      올려주신 코드 제일 마지막에 " } "가 빠지긴 했는데 이것 말씀이신가요?

      무슨 에러인지 댓글 달아 주시면 말씀드리겠습니다.

      그리고

      #pragma warning(disable:4996)

      #pragma warning(disable:6031)

      표시를 안해도 되는 방법은 아래 블로그를 참고하세요.

      https://bloodstrawberry.tistory.com/5

    • 안녕하세요 4년차 자바 개발자입니다.

      정확하게 어떤 에러가 나오는지 에러를 같이 첨부 안해주셔서 확인이 안되지만

      일단 전체 소스라고 가정하면 return 0; 다음에 } 중괄호로 main을 닫아 주셔야 할 거 같습니다.

      해당소스로 컴파일시 정상적으로 1~100 사이의 정수(no)를 연속으로 입력 받는다. (while) 단, 0이 입력되면 종료. 입력된 정수 중 최대값/최소값을 출력이 되고있습니다.

      하시면서 if, for, while 문 등 한줄인 경우 중괄호를 안해도 문법상 문제는 없지만 가독성상 한줄이라도 중괄호로 묶어주시면 좋을거같습니다.

      #include <stdio.h> #pragma warning(disable:6031) #pragma warning(disable:4996) int main(){ int no = 1, max =0, min = 101; while(true) { printf("input value(no): "); scanf(" %d", &no); if(no < 101 && no > 0) { if (no > max){ max = no; } if (no < min){ min = no; } }else if(no == 0){ break; }else { printf("error\n"); no = 1; } } if(max == 0 || min == 101){ printf("error"); } else { printf("max = %d \nmin = %d\n", max, min); } return 0; }