注册 登录
编程论坛 C语言论坛

能运行,但是输入数字以后就卡在那里了,能看看哪里有问题吗?

huyvht 发布于 2021-01-08 15:39, 1527 次点击
只有本站会员才能查看附件,请 登录

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a[4]={0};
    int i,j;
    int temp=0;
    printf("请输入四个整数:");
    for(i=0;i<4;++i)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<4;++i)
    {
        for(j=0;i<(3-i);++j)
        {
            if(a[j]>a[j+i])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    printf("这四个数的从小到大的顺序是:");
    for(i=0;i<4;++i)
    {
        printf("%d",a[i]);
    }
    system("pause");
    return 0;
}
3 回复
#2
rjsp2021-01-08 16:18
i<(3-i)
这是什么意思
#3
rjsp2021-01-08 16:21
还有
            if(a[j]>a[j+i])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
一会儿j+i,一会儿j+1,看不懂
#4
huyvht2021-01-09 16:38
回复 3楼 rjsp
#include <stdio.h>
 
int main()  
{  
    int a[4] ;  
    int i,j;  
    int temp;  
    printf("请输入4个数: ");  
    for( i = 0; i < 4; i++ )  
    {  
        scanf("%d",&a[i]);  
    }  
    for( i = 0; i < 4; i++ )  
    {  
        for( j = 0; j < (3-i); j++ )  
            if( a[j] > a[j+1] )  
            {  
                temp = a[j];  
                a[j] = a[j+1];  
                a[j+1] = temp;  
            }  
    }  
    printf("这4个数由小到大的排列顺序如下:");  
    for( i = 0; i < 4; i++ )  
    {  
        printf("%d ",a[i]);  
    }  
    printf("\n");  
    return 0;  
}
正确代码是这样的发完贴以后就找到原因了
1