렬알고리즘 짜기전에 일단 이거부터 실험해보고 있는데 웃긴게 뭐냐면
정렬 개수 정하려고 num 에 5정도 넣으면 그밑에 scanf함수가 자꾸 6번이 떠
그니까 n넣으면 n+1번 scanf함수가 호출됨... 또 웃긴건 그밑에 for문에 printf함수는 5번이 뜨고(n번뜬다는 뜻)
왜 지금 이상황에서 scanf함수는 한번더 호출되는거야?? 알려줘 ㅠㅠ
int main(void)
{
int num;
int i;
int * data;
printf("정렬할 수의 개수를 입력하시오 : ");
scanf("%d", &num);
>
printf("임의의 숫자를 입력하시오 : ");
for (i = 0; i < num; i++)
{
scanf("%d ", &data[i]);
}
for (i = 0; i < num; i++)
{
printf("%d ", data[i]);
}
return 0;
}
뭔소린지는 모르겠다만,,,버퍼때문에 엔처한번더쳐야하는문제아니냐?? C를 안한지오래되서,,,
printf로 루프사이에 변수 찍어바라
ㅇㅇ 해볼게
I를 초기화할때 초기값 줘보는게어때?
쳐보니 for문을 한바퀴 더 도는게 아니고 scanf 함수만 한번도 호출되네
scanf_s써야되는건가? 뭐지 ㅡㅡ
동적할당시킨 코드도 보여쥬
뭐지 이상하네 형들 이거 한번 컴파일 해볼래?
코드 위에가 다야
아 아니구나
wkㅁ시만
#include <stdio.h>#include <stdlib.h>int main(void){ int num; int i = 0; int * data; printf("정렬할 수의 개수를 입력하시오 : "); scanf("%d", #);printf("임의의 숫자를 입력하시오 : "); for (i = 0; i < num; i++) { //printf("%d ", i); scanf("%d ", &data;[i]); } for (i = 0; i < num; i++) { printf("%d ", data[i]); } return 0;}
ㅡㅡ 다시쓸게 잠만
아둔//되서->돼서
이게다라고? 다일수가없는데 data 변수에 할당시키는부분은 함수로 빼둔거야? 아니면 main내에다가 짠거야? 아마 상관은없겠지만 혹시 모르니..
data = (int*)malloc(sizeof(int)*num);
이게 자꾸 사라지네 복붙하면 암튼 이거 넣어도 안돼
얌 너 scanf에 띄어쓰기있지 그거지워 %d 다음에 한칸띄우네
scanf는 사용자가 입력한 포맷과 정확히 일치시켜서 해당되는 변수에 값채워주는데 띄어쓰기있으면 이상하게작동할것같은데
아!!!!!!!!!!!!! 감사합니다 ^^
자바쓰다 c쓰니까 그래서 그런가 고마워 형