鱼C论坛

 找回密码
 立即注册
查看: 1773|回复: 4

我这个排序语法上OK, 逻辑上有点问题。请大神指点。

[复制链接]
发表于 2015-8-18 19:03:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
        int i, j;
        int a[10];
printf("input 10 numbers:\n");
        for(i=0;i<10;i++)
        {scanf("%d\n",&a[10]);}  //输入10个整型数


        for (j=0;j<9;j++)         //比较的个数
{  for(i=0;i<9-j;i++)         //每个两两比较的次数
       
        a[i+1]=(a[i]>a[i+1])?a[i]:a[i+1]; //最大数的沉底
       
}
    printf("The sorted numbers:\n");
        for(i=0;i<10;i++)
        {printf("%d\n",a[i]);}    //使10个数从小到大顺序打印出来
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-18 19:52:22 | 显示全部楼层
a[i+1]=(a[i]>a[i+1])?a[i]:a[i+1]; //最大数的沉底
这里有问题,比如a[i]>a[i+1]那么你a[i+1]被a[i]覆盖了,那原来a[i+1]的数据就丢失了呀。
所以应该改为a[i+1]和a【i】交换,这样既能让最大数沉底,也保留了原数据。
详情请百度冒泡排序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-20 19:25:35 | 显示全部楼层
#include<stdio.h>
void main()
{
        int i, j,temp;
        int a[3];

        for(i=0;i<3;i++)
        {scanf("%d",&a[3]);}  //输入3个整型数


for(j=0;j<=2;j++)
{ for (i=0;i<2-j;i++)   //二次循环
if (a[i]>a[i+1])
{ temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} }//大小互换
       
for(i=0;i<3;i++)
{ printf("%d,",a[i]) ;
   printf("\n"); }

}

//到底错在哪呢。:mad:

编译错误显示

编译错误显示
@`~E21T0UFHYNUSB41TIN{K.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-20 19:33:07 | 显示全部楼层
#include<stdio.h>

int main()
{
        int i, j, temp;
        int a[3];
        
        for(i=0; i<3; i++)
                scanf("%d", &a[i]); // 输入 3 个整型数
        
        
        for(j=0; j<2; j++) 
        { 
                for(i=0; i<2-j; i++)   //二次循环
                {
                        if (a[i] > a[i+1])//大小互换
                        {
                                temp   = a[i];
                                a[i]   = a[i+1];
                                a[i+1] = temp;
                        }
                }
        }        
        
        for(i=0; i<3; i++)
                printf("%d,", a[i]);
        
        printf("\n");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-22 20:31:57 | 显示全部楼层
哦,谢谢,我找到问题了,谢谢。输入3个整型数的时候。 &a[i]我写成了&a[3].  修改后OK.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 08:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表