Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的排序数组_C_Arrays_If Statement - Fatal编程技术网

C语言中的排序数组

C语言中的排序数组,c,arrays,if-statement,C,Arrays,If Statement,我试图用C语言对数组大小进行排序,在这里发布之前,我已经对它进行了一些测试(我把测试语句留在了C语言中)。 我只得到一次正确答案,但它会将较高的值移到错误的数组中,即使我使用了IF语句 如果你们运行这个程序,对你们来说是有意义的 #include <stdio.h> # define size 3 int sum(); main() { int a[size] = { 4, 2, 3 }; int temp, i, j, x; for (j = 0; j

我试图用C语言对数组大小进行排序,在这里发布之前,我已经对它进行了一些测试(我把测试语句留在了C语言中)。 我只得到一次正确答案,但它会将较高的值移到错误的数组中,即使我使用了IF语句

如果你们运行这个程序,对你们来说是有意义的

#include <stdio.h>
# define size 3

int sum();

main() {
    int a[size] = { 4, 2, 3 };
    int temp, i, j, x;

    for (j = 0; j < size; j++){

        for (i = 1; i < size; i++){
            for (x = 0; x < size; x++){
                printf("%d", a[x]); //testing statement; 
            }
            printf("\n");
            if (a[j] > a[i]){
                temp = a[j]; 
                a[j] = a[i];
                a[i] = temp;

            }

        }

    }


for (x = 0; x < size; x++){
            printf("%d", a[x]);
        }
    getch();
}
#包括
#定义尺寸3
int sum();
main(){
inta[size]={4,2,3};
内部温度,i,j,x;
对于(j=0;ja[i]){
温度=a[j];
a[j]=a[i];
a[i]=温度;
}
}
}
对于(x=0;x
更改

for (i = 1; i < size; i++){
for(i=1;i
差不多

for (i = j + 1; i < size; i++) {
(i=j+1;i{
这样,您就可以将元素再次与
if(a[j]>a[i])进行比较了{
当您将
i
重置为
1

时,哪一个可以将它们移回?问题是什么?@e0k在数组中移动元素的要求不满足时,程序为什么要移动元素?请注意,您的打印不包括新行(因此数字都混在一起)并且永远不要识别正在打印的数组的哪个元素(因此很难知道打印是如何相关的)。您需要解决这个问题:
printf(“a[%d]=%d\n”,x,a[x])
例如,尽管可能会有无止境的变化。最好是在一行上转储数组;它在处理小数字的小数组时工作得很好。至于移动问题,很可能是您的内部循环应该从
i+1
索引;现在,您将比较
a[2]
使用
a[1]
并将
a[2]
移动到
a[1]
如果
a[2]
大于
a[1]。谢谢你的工作,但是我更感兴趣的是为什么答案是有效的。我比知识更需要解决问题。你能给我一个快速的解释为什么你的解决方案有效吗?我没有工作。@ BHJAT我已经试过了,考虑一下当你允许<代码> I <代码>时,在左手边和右边的是什么。在
if
j
的左侧。