C 我的程序有几个bug,我不知道如何修复它们

C 我的程序有几个bug,我不知道如何修复它们,c,arrays,loops,C,Arrays,Loops,我必须将三个用户输入的数字按升序排列在一个数组中。有几个虫子 A) 我将它设置为只要求三个数字,但我必须输入4,即使程序只对前三个进行排序 B) 我收到一条警告,说我的可变温度未使用,尽管它显然是未使用的 C) 程序对前两个数字进行排序,然后再次打印第二高的数字,而不是最大的数字 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #

我必须将三个用户输入的数字按升序排列在一个数组中。有几个虫子

A) 我将它设置为只要求三个数字,但我必须输入4,即使程序只对前三个进行排序

B) 我收到一条警告,说我的可变温度未使用,尽管它显然是未使用的

C) 程序对前两个数字进行排序,然后再次打印第二高的数字,而不是最大的数字

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <time.h>

int main(){

    int numbers = 3;
    int NUM_ARRAY[numbers];
    int counter = 0;
    int sort = 0;
    int temp = 0;

                printf("Please enter three integers\n");
            for(counter = 0; counter < numbers; counter++){
                scanf("%d ", &NUM_ARRAY[counter]);
            }
                printf("Original Numbers\n");
            for(counter = 0; counter < numbers; counter++){
                printf("%d\n", NUM_ARRAY[counter]);
            }

            while(1){
                sort = 0;
                for(counter = 0; counter < numbers-1; counter++){
                    if(NUM_ARRAY[counter] > NUM_ARRAY[counter+1]){
                        int temp = NUM_ARRAY[counter];
                        NUM_ARRAY[counter] = NUM_ARRAY[counter+1];
                        NUM_ARRAY[counter+1] = NUM_ARRAY[counter];
                        sort = 1;

                    }
            }
            if(sort == 0){
                break;
            }

        }
            printf("Sorted Numbers\n");
                for(counter = 0; counter < numbers; counter++){
                   printf("%d\n", NUM_ARRAY[counter]);
                }

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(){
整数=3;
int NUM_数组[数字];
int计数器=0;
int-sort=0;
内部温度=0;
printf(“请输入三个整数\n”);
用于(计数器=0;计数器<数字;计数器++){
scanf(“%d”、&NUM_数组[计数器]);
}
printf(“原始编号”);
用于(计数器=0;计数器<数字;计数器++){
printf(“%d\n”,NUM_数组[计数器]);
}
而(1){
排序=0;
用于(计数器=0;计数器<数字-1;计数器++){
if(NUM_数组[计数器]>NUM_数组[计数器+1]){
int temp=NUM_数组[计数器];
NUM_数组[计数器]=NUM_数组[计数器+1];
NUM_数组[计数器+1]=NUM_数组[计数器];
排序=1;
}
}
如果(排序==0){
打破
}
}
printf(“排序的数字\n”);
用于(计数器=0;计数器<数字;计数器++){
printf(“%d\n”,NUM_数组[计数器]);
}
返回0;
}

您应该将temp设置为
NUM\u数组[计数器+1]
而不是
NUM\u数组[计数器]

试试这个:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <time.h>

int main(){

    int numbers = 3;
    int NUM_ARRAY[numbers];
    int counter = 0;
    int sort = 0;
    int temp = 0;

                printf("Please enter three integers\n");
            for(counter = 0; counter < numbers; counter++){
                scanf(" %d", &NUM_ARRAY[counter]); // changed spacing on %d
            }
                printf("Original Numbers\n");
            for(counter = 0; counter < numbers; counter++){
                printf("%d\n", NUM_ARRAY[counter]);
            }

            while(1){
                sort = 0;
                for(counter = 0; counter < numbers-1; counter++){
                    if(NUM_ARRAY[counter] > NUM_ARRAY[counter+1]){
                        int temp = NUM_ARRAY[counter];
                        NUM_ARRAY[counter] = NUM_ARRAY[counter+1];
                        NUM_ARRAY[counter+1] = temp;  <--- /* Since NUM_ARRAY[counter] will be set to next value in the previous step */
                        sort = 1;

                    }
            }
            if(sort == 0){
                break;
            }

        }
            printf("Sorted Numbers\n");
                for(counter = 0; counter < numbers; counter++){
                   printf("%d\n", NUM_ARRAY[counter]);
                }

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(){
整数=3;
int NUM_数组[数字];
int计数器=0;
int-sort=0;
内部温度=0;
printf(“请输入三个整数\n”);
用于(计数器=0;计数器<数字;计数器++){
scanf(“%d”,&NUM_数组[计数器];//更改了%d上的间距
}
printf(“原始编号”);
用于(计数器=0;计数器<数字;计数器++){
printf(“%d\n”,NUM_数组[计数器]);
}
而(1){
排序=0;
用于(计数器=0;计数器<数字-1;计数器++){
if(NUM_数组[计数器]>NUM_数组[计数器+1]){
int temp=NUM_数组[计数器];
NUM_数组[计数器]=NUM_数组[计数器+1];

NUM_ARRAY[counter+1]=temp;您是否先尝试过调试程序?谢谢,我不知道您添加了不必要的step@Muhammed把它标记为正确的和有帮助的,这样其他人也会受益。我对这个网站很陌生,你到底是怎么做到的?