아래의 main 메소드에서 나는 sort 함수를 호출하려고합니다. 그리고 함수가 사용자 입력에서 후자를 선택하면 그에 따라 정렬을 인쇄해야합니다. 종료. 하지만 나는 "루프가 최대 한 번 (루프 증분이 실행되지 않음)"이라는 문구가 array[arraySize]
을 가리 키도록 경고합니다. 위의 루프에 대해 반환 형식 또는 다른 형식과 관련이 있습니까? 여기 무슨 일 이니? 누구든지 지적하고 설명해주십시오. 감사합니다!루프는 배열의 크기를 증가시키기 위해 무시합니다.
int main()
{
long array[100], arraySize;
char sort;
long maxi = 100;
for(arraySize = 0; arraySize < maxi; arraySize++)
{
printf("Enter any positive integer, enter 0 to stop: ");
scanf("%li", &num);
if(num < 0) {
arraySize--;
printf("I said positive!");
count++;
}
else if(num == 0) {
maxi = arraySize;
}
else {
array[arraySize]=num;
arraySize--;
}
}
printf("Please enter A for ascending or D for descending order\n");
scanf("%s", &sort);
bubble_sort(array, arraySize, sort); //calling the sort function
printf(" Sorted list in the selected order:\n");
for (arraySize = 0; arraySize < num; arraySize++) {
printf("%ld \n", array[arraySize]);
puts("");
return 0;
}
}
편집 : 모든 제안 감사합니다 모두 여기에 아래의 코드입니다. 나는 약간의 변화를 만들었고 여기에 내가 지금까지 가지고있는 것이있다. 이제 bubble_sort
기능 로직과 함께 A/D 사용자 입력을 건너 뜁니다. 다음은 최종 결과물입니다. 참고 : long num
은 전역 변수로 선언되었습니다!
더 이상의 제안
int main()
{
long array[100], arraySize;
char sort;
long maxim = 100;
for(arraySize = 0; arraySize < maxim; arraySize++)
{
printf("Enter any positive integer, enter 0 to stop: ");
scanf("%li", &num);
if(num < 0)
{
arraySize--;
printf("I said positive! \n");
count++;
}
else if(num == 0)
{
maxim = arraySize;
}
else
{
array[arraySize]=num; //arraySize--;
}
}
printf("Please enter A for ascending or D for descending order: \n");
scanf("%c", &sort);
bubble_sort(array, maxim, sort); //calling the sort function
printf("Sorted list in the selected order:\n");
for (arraySize = 0; arraySize < maxim; arraySize++)
{
printf("%ld \n", array[arraySize]);
}
puts("");
return 0;
}
부탁드립니다!
왜 당신은'arraySize -'를 할 때마다 for 루프를 사용합니까? 정확히'arraySize ++'는 그것이 진정한 색깔임을 보여줄 것인가? 'num == 0'을 제외하고 루프를 통해 항상 같은 상태를 유지하지 않을 것인데, 그때 코드는'arraySize -'를 사용하지 않기 때문입니다. 'else' 부분은'array [arraySize] = num;'만 포함하고 그 뒤에 다른 값을 추가 할 수 있도록'arraySize'를 1 씩 증가시켜야합니다. –
'char sort; .... scanf ("% s", &sort);'가 좋지 않습니다. – chux
@nIcEcOw'arraySize'는 제 버블 소트 함수의 루프에서'arraySize-i'를 필요로하지 않을 때마다 그러합니다! –