아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
길쭉한파랑새106
길쭉한파랑새10621.03.24

C언어 고수님들 문제점좀 찾아주세요

프로그래밍 작성중에 오류가 뜨는데 뭐가문젠지도 모르겟어요ㅠㅠ 7번째 줄에서 문제 나오는거같은데 문제점좀 찾아주세요ㅠㅠ

.

글씨가 잘 안보이면 다시 찍어드릴게요 도와주세요ㅠㅠㅠㅠㅠ

55글자 더 채워주세요.
답변의 개수21개의 답변이 있어요!
  • int main(vodi)

    {

    //int amount;

    int amount=0; //여기서 초기화를 안해서 에러 난듯 합니다.

    int price = 1000;

    printf("수량 : %d, 가격 : %d\n, amount, price);

    amount= 100;

    price = 2000;

    printf("수량 : %d, 가격 : %d\n, amount, price);

    return 0;

    }


  • c는 선언을 하고 초기화로 변수에 값을 할당합니다.

    첫번째 줄에서

    //선언 => 아직 값이 초기화가 이루 어 지지 않았습니다.

    // 즉 한번도 값이 amount 에 대입한적이 없습니다

    int amout;

    그런데

    printf함수에서 출력하려고 하니 에러가 나는 것입니다.

    int amount =100; //원하는 값을 할당을 하고 출력을 해보세요..


  • int amount;

    위 변수를 선언했을때 변수 초기화를 하지않았네요.

    초기화를 하지않으면 쓰레기값이 할당될수있습니다.

    값을 넣어주지않은상태에서 amount값을 printf 로 출력하려고 하니 오류가 발생하는것입니다.

    int price = 1000; 과 같이 변수값을 초기화하면 정상동작할것입니다.


  • 오류 코드에 보면 "초기화되지 않은 'amount' 지역 변수를 사용했습니다"라고 나오고 있습니다.

    코드에서 int amount; 이렇게만 만들고 초기값을 주지 않은 것으로 보입니다.

    그렇다보니 오류가 나는 것으로 보입니다.

    int amount = 0; 이렇게 수정해보고도 오류가 나는지 확인을 해보는 것이 좋을 것 같습니다.


  • 탈퇴한 사용자
    탈퇴한 사용자21.03.24

    프로그래밍 작성중에 오류가 뜨는데 뭐가문젠지도 모르겟어요ㅠㅠ 7번째 줄에서 문제 나오는거같은데 문제점좀 찾아주세요ㅠㅠ

    -> 5번째 줄에 int amount=0;를 하면 될겁니다.

    int형 변수는 null이 존재 할수가 없어요

    무조껀 숫자여야 합니다.

    변수에 대해서 다시한번 보면 좋을것 같네요


  • 안녕하세요.

    해당 오류는 결과 창에 나오는 것과 같이 amount 변수가 초기화 되어있지 않아서 입니다.

    말 그대로 7번째 줄에 amount가 price 처럼 price=1000; 이렇게 초기화 되어있지 않기 때문에 나는 오류입니다.

    다섯번째 줄에 int amount; 를 int amount = 0; 과 같이 초기화 해주시면 됩니다.


  • 안녕하세요

    아래 에러를 보면 초기화하지 않은 변수를 사용했다고 나오는데 맨 처음에

    int amount;

    라고 변수를 선언하기만 하고 초기화를 하지 않아서 나는 에러입니다.

    아래 변수처럼 초기값을 입력해 주셔야 에러가 발생하지 않고 진행될 수 있을 거 같아요

    다시 한번 해보시면 될 것 같습니다

    화이팅하세요!


  • 안녕하세요.

    price만 초기화가 되어 있고 amount는 초기화가 되어 있지 않아서 발생하는 오류입니다.

    int amount = 1; // 초기화 필요

    int price = 1000;

    모든 변수는 꼭 초기화가 필요합니다.

    그리고 에러 발생시에 아래에 친절히 알려주니 그 부분도 잘 참조하세요.

    참고바랍니다.


  • 안녕하세요

    아하 프로그래밍 전문가 입니다.

    int 는 선언이며 int=(숫자)의 값까지 붙여야 초기화 라고 할수 있습니다.

    int amount ; 이부분을 수정해서

    int amount = 0; 으로 수정 하시기 바랍니다.

    밑에 디버깅 오류도 확인이 가능합니다.

    프로그램을 시작한 초보자시라면 밑에 디버깅 오류를 구글에 복사해서 검색하시면 금방 원인을 찾을 수 있을것 같습니다.

    수고하세요!


  • 안녕하세요

    에러가 발생하면 오류 메세지를 분석하고

    해당 라인에서 원인을 찾고 해결하시길 바랍니다.

    초기화 되지 않은 메모리 amout

    초기화 되지 않은 변수 amount

    C언어 print 문에서 %구문을 활용하여 변수를 사용할때는

    변수 앞에 &를 넣어주셔야 합니다.

    printf( "수량: %d , 가격 : %d\n", &amount, &price);

    로 변경하세요~!


  • 말 그대로 amount 변수가 초기화 되지 않아 발생한 문제입니다. 즉 , amount 변수를 선언만 하게 되면 해당 값에는 쓰레기값이 들어가 있는데, 그 값을 사용하려고 했기 때문에 컴파일러에서 오류를 발생시킨것입니다.

    선언하실때 아래와 같이 선언해주시면 됩니다.

    int amount = 0;

    변수 선언 시 초기화하는 습관을 들이시길 바랍니다. 도움이 되셨길 바랍니다.


  • 안녕하세요.

    에러내용은 초기화되지 않은 변수를 printf로 찍으려고 해서 발생하는 문제입니다.

    int amount; -- > int amount = 0; 로 바꿔주시거나

    printf 문장을 amount = 100; 다음으로 옮겨주시면 문제가 해결되실 겁니다.

    이제 처음 공부하시는것 같은데 열공하세요


  • int amount; // 변수 초기화가 안되어 있네요

    int amount = 0;

    이렇게 변경해 주시면 됩니다.

    초기화 되지 않은 변수를 printf 에서 사용하려다 보니 발생한 오류 입니다.

    앞으로도 변수에 대한 초기화 처리는 잘 익혀두셔야 정신건강에 도움이 되실껍니다.

    지역변수의 초기화는 저렇게 오류라도 보여주지만,

    전역변수나 포인터 같은 경우는 segment fault 나 알 수 없는 오류를 뱉어내기에 잘 습관화 하셔야 합니다.


  • 밑줄은 price에 있어서 문제 부분이 price 쪽에 있는 것으로 착각을 하게 하는 것 같습니다.

    오류 목록에 보시면 amount가 초기화되지 않았다고 나와 있습니다.
    따라서 amount 를 출력하기 전에 초기화를 해보세요.

    #include <stdio.h> int main( void) { int amount; // 초기화가 되지 않았습니다! int price = 1000; printf("수량 : %d, 가격: %d\n", amount, price); amount = 100; price = 2000; printf("수량 : %d, 가격: %d\n", amount, price); return 0; }

    컴파일러, 혹은 같은 컴파일러라고 하더라도 컴파일 옵션에에 따라서는 컴파일이 가능할 수도 있습니다.

    GCC에서는 아래와 같이 쓰레기 값이라고 불리는 임의의 값이 출력됩니다.


  • int amount = 숫자; 로 해주세요

    0으로 초기화를 하든 원하시는 숫자를 넣으시던!

    Price는 초기값이 잘 들어가서 출력이 잘 될텐데

    Amout는 초기값이 없는데 printf로 출력을 하려고 시도하니까

    빌드 error가 나면서 실행이 안됩니다.

    에러 설명에도 동일하게 초기화 안된 amount 변수를 사용했다고 되어있구요


  • 선언과 동시에 초기화 예)int a=0; 를 해애지 면수 a의 주소(adress)에 0이 저장됩니다 0이 저장되기전(초기화전)에는 변수a자리에 쓰레기값 즉 예측할수 없는 값이 들어있습니다. 그러므로 변수 작성시 초기화는 필수 사항입니다. 교재에서 초기화하지 않은 부분은 선언과 동시에 초기화하지 않은 것이지 int x; x=50;이라던가 scanf로 변수의 초기화를 할 수 있습니다. 그러니까 변수는 초기화하기전에 연산이 불가능 합니다


  • 배우시는 입장에서 디버깅 할때 나오는 오류를 잘 읽어 보시면 답이 나와요~

    오류에 초기화하지 않은 메모리 amount라고 나오네요~

    그럼 뭐가 문제일까요??

    amount라는 int변수를 선언은 했지만 초기화를 하지 않았으니 나오는 오류겠죠??

    변수 선언 후 초기화하는법은 아실테니 코멘트는 여기까지^^


  • 안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.

    amount 의 값을 0으로 초기화 시켜보고 시도 해보시기 바랍니다.

    #include <stdio.h> int main() { int amount = 0; int price = 1000; printf("수량 : %d, 가격 : %d\n", amount, price); amount = 100; price = 2000; printf("수량 : %d, 가격 : %d\n", amount, price); return 0; }

    답변이 도움이 됐으면 합니다. 좋은 하루 되세요!


  • 7번째 line에 amount라는변수를 출력하려하였으나,

    해당 변수를 출력하기이전에 해당 변수를 선언만 해놓고 값을 할당하지않으셨네요. 해당 printf문에서 amount를 출력하지않든가,

    값을 할당한후 출력하세요.

    참고로 변수는 선언시 초기값을 할당하는 습관을 갖는 것이 좋습니다.


  • 위의 코드 중에서 int amount; 이 부분을 수정하면 제대로 작동할 것으로 보입니다.

    오류를 보면 초기화 하지 않은 메모리를 이용하기 때문인 것으로 보이므로 변수의 값을 0으로 초기화하여 사용하신다면 잘 작동할 것으로 생각됩니다.

    오류가 나는 부분만 수정하자면

    int amount = 0;

    int price = 1000;

    이렇게 하셔야할 것으로 보입니다.


  • int amount;

    이 부분이 잘못 되었습니다.

    int amount = 0;

    초기화 값을 넣어줘야 합니다.

    초기화 값을 넣어주지 않고, 출력 하려 하면 null point로 나오게 되어서 에러가 뜨게 됩니다. 꼭 변수를 만들면 반드시 처음 부터 초기화 값을 지정 해줘야 합니다.

    좀 더 기초 문법을 복습해주세요.