鱼C论坛

 找回密码
 立即注册
查看: 2754|回复: 18

各位师兄,小弟新手又道题不会,谁来帮一下

[复制链接]
发表于 2014-6-20 20:06:10 | 显示全部楼层 |阅读模式

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

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

x
这个试题是输出一组数,最大的放在第一个最小的放到最后一个,关键是运行到输入的时候,打上数字就运行不下去了
# include <stdio.h>

int main(void)
{
        int i = 0,h = 0,t = 0,s = 0,a[5];
        printf("请输入您要排序的数字\n");
        for(i = 0;i<5;i++)
        {
                scanf("%d",&a[i]);
        }
        printf("排序开始:");

        for(i=0;i<5;i++)
        {
                if(a[i]<a[i+1])
                {
                        t = a[i+1];
                        a[i+1] = a[i];
                        a[i] = t;
                }
                if(a[i]>a[i+1])
                {
                        t = a[i+1];
                        a[i+1] = a[i];
                        a[i] = t;
                }
        }
                for(i = 0;i<5;i++)
        {
                printf("%d",&a[i]);
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-20 21:32:25 | 显示全部楼层
   printf("%d",a[i]);而且循环最好到4 因为你有i+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-21 21:15:43 | 显示全部楼层
第二个for循环的判断条件改成 i < 4 ;而且循环里面的判断也有问题,这个问题会导致你不能输出正确的结果,当a[i] < a[i+1]成立,将a[i]和a[i+1]交换位置后,此时,a[i]就大于a[i+1]了,下一个判断也会成立,结果又变回原来的位置了,简而言之,第二个if语句没用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-21 23:08:34 | 显示全部楼层
看看  顺便顶LZ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-22 20:20:29 | 显示全部楼层
上面那位师兄说的我没有看懂呢,哪位师兄有时间给我写一个真确的我对比改正一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 12:22:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 12:31:40 | 显示全部楼层
南国的梦 发表于 2014-6-22 20:20
上面那位师兄说的我没有看懂呢,哪位师兄有时间给我写一个真确的我对比改正一下
for(int i = 0;i < 4;i++)
{
        for(int j = i+1;j < 5;j++)
        {
                if(a[i] < a[j])
                {
                        int temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 12:34:14 | 显示全部楼层
南国的梦 发表于 2014-6-22 20:20
上面那位师兄说的我没有看懂呢,哪位师兄有时间给我写一个真确的我对比改正一下

一些基本的排序算法自己要掌握,要达到能不看书随随便便就能打出来的地步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 12:35:15 | 显示全部楼层
支持小甲鱼~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 14:04:51 | 显示全部楼层
# include <stdio.h>
int main()
{
        int i ,t,j,a[5];
        printf("请输入您要排序的数字\n");
        for(i = 0;i<5;i++)
        {
                scanf("%d",&a[i]);
        }
        printf("排序开始:");
        for(j=0;j<4;j++)
                {
                        for(i=0;i<5-j;i++)
                        {
                if(a[i]<a[i+1])
                {
                        t = a[i+1];
                        a[i+1] = a[i];
                        a[i] = t;
                }
                        }
                }
                        for (i=0;i<5;i++)
                        {
                                printf("%d\n",a[i]);
                        }
               
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 15:36:38 | 显示全部楼层
本帖最后由 xuheng 于 2014-6-23 15:56 编辑

:sweat:之前的选择排序没写好……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-23 15:55:49 | 显示全部楼层
本帖最后由 xuheng 于 2014-6-23 16:04 编辑
#include <stdio.h>

int main()
{
        int i,j,k,temp;
        int a[5];
        for(i = 0;i < 5;i++)
        {
                scanf("%d",&a[i]);
        }
        for(i = 0;i < 4;i++)
        {
                k = i;
                for(j = i+1;j < 5;j++)
                {
                        if(a[k] < a[j])k = j;
                }
                if(k != i)
                {
                        temp = a[i];
                        a[i] = a[k];
                        a[k] = temp;
                }
        }
        for(i = 0;i < 5;i++)
        printf("%d ",a[i]);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-24 06:00:26 | 显示全部楼层

师兄出线黑屏输入5个数以后程序还是不运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-24 06:02:45 | 显示全部楼层
﹍俗。 发表于 2014-6-23 14:04
# include
int main()
{

师兄出线黑屏输入5个数以后程序还是不运行,而且数字输入没有限制比如输入来人12345,然后回车不输出只调到下一行而且还能输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-24 15:49:04 | 显示全部楼层
南国的梦 发表于 2014-6-24 06:00
师兄出线黑屏输入5个数以后程序还是不运行

截个图看看- -我运行没问题啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-24 17:43:07 | 显示全部楼层
南国的梦 发表于 2014-6-24 06:02
师兄出线黑屏输入5个数以后程序还是不运行,而且数字输入没有限制比如输入来人12345,然后回车不输出只调 ...

什么编译器,我VC6.0编译没出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-25 11:05:01 | 显示全部楼层
1012662902 发表于 2014-6-21 23:08
看看  顺便顶LZ

在同一个主函数中相同的循环变量不可以用在两个for循环中,所以有
                for{int i=0;i<5;i++}
                    {
                            for(int k=0;k<7;K++)
                                {
                                  }
                     }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-25 11:10:23 | 显示全部楼层
1697673999 发表于 2014-6-25 11:05
在同一个主函数中相同的循环变量不可以用在两个for循环中,所以有
                for{int i=0;i

对不住,刚才弄错了,可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-25 11:19:35 | 显示全部楼层
最后printf()语句里不能加取地址符&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 08:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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