鱼C论坛

 找回密码
 立即注册
查看: 2470|回复: 3

求大神解答~!!!

[复制链接]
发表于 2016-3-28 17:25:28 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
#include<math.h>
int compare(int b[],int n);
int main()
{
        int a[5],i,j;
        printf("input a[5]:\n");
        for(i=0;i<5;i++)
        {
                scanf("%d",&a[i]);
        }
        printf("output:\n");
        compare(a,5);
        for(i=0;i<5;i++)
        {
                printf("%d,",a[i]);
        }
        printf("\n");       
}

int compare(int b[],int n)
{
        int i,j,k,temp;
        for(i=0;i<n-1;i++)
        {
                k=i;
                for(j=i+1;j<n;j++)
                {
                        if(b[j]<b[k])
                                k=j;
                                temp=b[k];
                                b[k]=b[i];
                                b[i]=temp;       
                }
        }
}
为什么我输入 1 6 5 4 88 输出却是1 5 6 4 88???求大神解答啊 啊啊 ~~!
MIM}E1}M{4{}RC{2VG}J9JU.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-28 17:52:58 | 显示全部楼层
兄弟你写过多少C的程序啦。。。
if判断语句为什么不加{}呀
以后无论分支结构后面有一句也好,多句也好,都把{}加上
还有你的冒泡排序写的我不是很懂呀,多设一个变量k是干什么用的,直接用i不好么
for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(b[j]<b[i])
            {
                temp=b[i];
                b[i]=b[j];
                b[j]=temp;
             }
        }
    }

还有compare(int b[],int n)这个函数明明没有返回值,为什么定义为int类型的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-28 19:04:52 | 显示全部楼层
shuofxz 发表于 2016-3-28 17:52
兄弟你写过多少C的程序啦。。。
if判断语句为什么不加{}呀
以后无论分支结构后面有一句也好,多句也好, ...

小弟刚学不久,用的是DEV X++ 只能设为INT不能用VOID的。。
对呀,好像没有这个K也行哦~~可是我的问题还没解决,,- -!! 怎么会输出这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-28 19:38:54 | 显示全部楼层
你真的有按照我说的改么=。=
我用的也是dev C++呀,改成void也没问题呀
我建议你还是先自己捋一遍到底哪错了,再看我的答案吧
#include<stdio.h>
#include<math.h>
void compare(int b[],int n);
int main()
{
        int a[5],i,j;
        printf("input a[5]:\n");
        for(i=0;i<5;i++)
        {
                scanf("%d",&a[i]);
        }
        printf("output:\n");
        compare(a,5);
        for(i=0;i<5;i++)
        {
                printf("%d,",a[i]);
        }
        printf("\n");        
}

void compare(int b[],int n)
{
        int i,j,temp;
        for(i=0;i<n-1;i++)
        {
                for(j=i+1;j<n;j++)
                {
                        if(b[j]<b[i])
                        {                      
                                temp=b[j];
                                b[j]=b[i];
                                b[i]=temp; 
                        }
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 22:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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