C 我的程序有几个bug,我不知道如何修复它们
我必须将三个用户输入的数字按升序排列在一个数组中。有几个虫子 A) 我将它设置为只要求三个数字,但我必须输入4,即使程序只对前三个进行排序 B) 我收到一条警告,说我的可变温度未使用,尽管它显然是未使用的 C) 程序对前两个数字进行排序,然后再次打印第二高的数字,而不是最大的数字 代码如下:C 我的程序有几个bug,我不知道如何修复它们,c,arrays,loops,C,Arrays,Loops,我必须将三个用户输入的数字按升序排列在一个数组中。有几个虫子 A) 我将它设置为只要求三个数字,但我必须输入4,即使程序只对前三个进行排序 B) 我收到一条警告,说我的可变温度未使用,尽管它显然是未使用的 C) 程序对前两个数字进行排序,然后再次打印第二高的数字,而不是最大的数字 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #
#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把它标记为正确的和有帮助的,这样其他人也会受益。我对这个网站很陌生,你到底是怎么做到的?