gpt4 book ai didi

c - 循环忽略增加数组的大小

转载 作者:行者123 更新时间:2023-12-02 08:31:29 25 4
gpt4 key购买 nike

在下面的主要方法中,我试图调用一个排序函数,并且在函数从用户输入中选择后者之后,它必须在末尾使用 for 循环相应地打印排序。但我有一个警告,内容为“循环最多运行一次(循环增量从未执行)”指向 array[arraySize]。它与上面的返回类型或其他for循环有关吗?这里发生了什么事?谁能指出并解释一下。非常感谢!下面是代码:

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;
}
}

编辑:感谢大家提出的所有建议。我确实做了一些改变,这就是我到目前为止所做的。现在它跳过 A/D 用户输入以及 bubble_sort 函数逻辑。下面是它作为最终输出所做的事情: 注意: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;
}

Output任何更多的建议将不胜感激!

最佳答案

还有一些其他问题,但让我们谈谈您的警告。你有这个代码:

for (arraySize = 0; arraySize < num; arraySize++) {
printf("%ld \n", array[arraySize]);
puts("");
return 0;
}

更正后的缩进应该清楚地表明为什么该循环最多运行一次。

关于c - 循环忽略增加数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26352027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com