0
포인터로 프로그램을 만들었으므로 프로그램이 제대로 작동하지만 버블 정렬이 제대로 작동하지 않습니다. 누군가 나를 도와주고 내가 뭘 잘못하고 있는지 보여줄 수 있습니까? 에서 그냥 배열이 문제가 없었어요,하지만 어떻게 든 포인터와 잘 작동하지 않습니다.포인터가있는 버블 정렬이 제대로 작동하지 않습니다.
if(didSwap == 0);
{
break;
}
이 숫자를 정렬 고려 :
#include <stdio.h>
#include <ctype.h>
main()
{
// Initializing pointer arrays
int i;
int ctr = 0;
char ans;
char * movies[5] = {"John Wick 2", "Kong: Skull Island", "Justice League",
"Mummies", "Thor: Ragnarok"};
int movierate[5];
int outer, inner, didSwap, temprate;
char * tempmovies = "This will be used to sort rated movies";
printf("***Oscar Movie Rating***\n");
printf("Time to rate this years best picture.\n");
for(i = 0; i < 5; i++)
{
printf("\nHave you seen %s?", movies[i]);
scanf(" %c", &ans);
if((toupper(ans)) == 'Y')
{
printf("Please rate the movie on a scale from 1-10. ");
scanf(" %d", &movierate[i]);
ctr++;
continue;
}
else
{
movierate[i] = -1;
}
}
for(outer = 0; outer < 4; outer++)
{
didSwap = 0;
for(inner = outer; inner < 5; inner++)
{
if(movierate[inner] > movierate[outer])
{
tempmovies = movies[inner];
temprate = movierate[inner];
movies[inner] = movies[outer];
movierate[inner] = movierate[outer];
movies[outer] = tempmovies;
movierate[outer] = temprate;
didSwap = 1;
}
}
if(didSwap == 0);
{
break;
}
}
for(i = 0; i < ctr; i++)
{
printf("\n%s rated a %d!", movies[i], movierate[i]);
}
return (0);
}
'main()'은 main 함수의 유효한 프로토 타입이 아닙니다. 'int main (void)'또는'int main (int, char **)'표준에 부합한다. 달리 가르치고있는 사람은 당신에게 해를 끼치고 있습니다. – StoryTeller
@StoryTeller 감사합니다. 차이점을 확인해 보겠습니다. –
입력? 예상 결과? 실제 출력? – 4386427