| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1500 人关注过本帖
标题:请问哥哥姐姐们一个非常笨的问题,呵呵
只看楼主 加入收藏
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
结帖率:90.91%
收藏
已结贴  问题点数:5 回复次数:36 
请问哥哥姐姐们一个非常笨的问题,呵呵
#include<stdio.h>
#define n 5
main()
{
    int array[n];
    int j,k;
    int temp;
    for(j=0;j<n;j++)
    {
        scanf("%d",&array[j]);
    }
    for(j=0;j<n-1;j++)
        for(k=0;k<n-1-j;k++)
        if(array[k]>array[k+1])
        {
            temp=array[k];
            array[k]=array[k+1];
            array[k+1]=temp;
        }
    for(j=0;j<n;j++)
        printf("%5d",array[j]);
    printf("\n");
}
小弟刚学C语言,这个程序中为什么 for(j=0;j<n-1;j++)
        for(k=0;k<n-1-j;k++)
这两句话不能直接写成for(k=0;k<n-1;k++)啊,迫切希望您的答复!
搜索更多相关主题的帖子: 哥哥 C语言 include 
2010-06-02 16:14
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
呵呵,谢谢了 ,第一次混论坛,不知道弄。
2010-06-02 16:15
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:2 
晕,你的程序能实现你的目的吗
2010-06-02 16:21
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:1 
应该可以,但是浪费程序时间,最后一个都已经是最大值了,你还和他比较干什么,到他前面的那个元素就够了
2010-06-02 16:28
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 4楼 韩明海
能运行,但是不能得到正确的答案,题目的要求是升序排列输出。
2010-06-02 16:37
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
你这样只能比较两个,,然后把最大放到最后

[ 本帖最后由 zhanfffmmm 于 2010-6-2 16:48 编辑 ]
2010-06-02 16:39
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 3楼 zhanfffmmm
谢谢,程序修改为一个for语句后能运行,但不能实现升序排列啊,我就是不知道那两个for语句什么意思,怎么不能写成我那样的形式,
2010-06-02 16:40
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 6楼 zhanfffmmm
对啊对啊,for(k=0;k<4;k++)这个范围好像没问题啊,可是为什么就只能比较前两个呢,如果只用一个for语句,我该怎么修改呢。。
2010-06-02 16:44
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
回复 8楼 huxiangwenhu
想法不错啊,不过我无能为力。
2010-06-02 16:47
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 6楼 zhanfffmmm
呵呵,我顺便还问您一个问题好吧?
#include<stdio.h>
main()
{
    float a,b,c,s,m;
    s=100;
    m=40;
    for(a=1;a<100;a++)
    {
        for(b=1;b<10;b++)
        {
            for(c=1;c<200;c++)
            {
                if((s=a+b+c)&&(m=a*0.4+b*4+c*0.2));
                printf("%f,%f,%f\n",a,b,c);
               
            }
        }
    }
    这个程序中 if((s=a+b+c)&&(m=a*0.4+b*4+c*0.2));语句为什么形同虚设,根本就没执行呢?
2010-06-02 16:49
快速回复:请问哥哥姐姐们一个非常笨的问题,呵呵
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029760 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved