| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:求助
只看楼主 加入收藏
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
收藏
 问题点数:0 回复次数:6 
求助
小弟初学编程,编了一个程序,功能是,把输入的数排序,然后插入一个数,请高手指点问题出在什么地方。感激不尽
#include <stdio.h>

void main()
{
    int a[11];
    int i,j,n,end,temp,temp_1,temp_2;
    printf("Enter six numbers:\n");
    for(i=1; i<=6; i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
        printf("\n");
    }
    printf("The Origin number:\n");
    for(i=1; i<=6; i++)
        printf("%d  ",a[i]);
    for(i=1; i<=5; i++)    /*sort*/
        for(j=1; j<=6-i; j++)
        {
            if(a[j]>=a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    printf("\nThe sorted number:\n");
    for(i=1; i<=6; i++)
        printf("%d  ",a[i]);
    
    printf("\nEnter the number you want to insert: ");
    scanf("%d ",&n);
    end=a[6];
    if(n >= end)
        a[7]=n;
    else
    {
        for(i=1; i<=6; i++)
        {
            if(a[i] >= n)
            {
                temp_1=a[i];
                a[i]=n;
                for(j=i+1; j<=7;j++) /*用两个变量temp_1,temp_2 可以实现数组元素后移*/
                {
                    temp_2=a[j];
                    a[j]=temp_1;
                    temp_1=temp_2;
                }
                break;
            }
        }
        
    }
    
    printf("The result:\n");
    for(i=1; i<=7; i++)
    {
        printf("a[%d]=%6d  ",i,a[i]);
    }
    
}
2008-07-06 15:04
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
....

[[it] 本帖最后由 himpo 于 2008-7-6 15:20 编辑 [/it]]
2008-07-06 15:16
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
#include <stdio.h>

void main()
{
    int a[11];
    int i,j,n,end,temp,temp_1,temp_2;
    printf("Enter six numbers:\n");
    for(i=1; i<=6; i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
        printf("\n");
    }
    printf("The Origin number:\n");
    for(i=1; i<=6; i++)
        printf("%d  ",a[i]);
    for(i=1; i<=5; i++)    /*sort*/               这里怎么还使用I循环?上面的FOR就是使用I了啊!
        for(j=1; j<=6-i; j++)
        {
            if(a[j]>=a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }                                   这里是把位置掉转!
    printf("\nThe sorted number:\n");
    for(i=1; i<=6; i++)
        printf("%d  ",a[i]);                  这里不加{}?
   
    printf("\nEnter the number you want to insert: ");
    scanf("%d ",&n);
    end=a[6];
    if(n >= end)
        a[7]=n;
    else
    {
        for(i=1; i<=6; i++)
        {
            if(a[i] >= n)
            {
                temp_1=a[i];
                a[i]=n;
                for(j=i+1; j<=7;j++) /*用两个变量temp_1,temp_2 可以实现数组元素后移*/
                {
                    temp_2=a[j];
                    a[j]=temp_1;
                    temp_1=temp_2;
                }
                break;
            }
        }
        
    }
   
    printf("The result:\n");
    for(i=1; i<=7; i++)
    {
        printf("a[%d]=%6d  ",i,a[i]);
    }
   
}

编程小菜
2008-07-06 15:18
崔园园
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2008-4-21
收藏
得分:0 
为什么你们总是在 main()前面加一个void, 不加是完全可以的呀,不懂?
2008-07-06 16:24
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
加不加无所谓拉,只是标准规定要有返回值类型

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-07-06 16:30
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
输入不匹配!

scanf("%d ",&n);

这里输入n值,输入后要加空格再回车。。。

改成scanf("%d",&n);也就是去掉空格就可以了。。
2008-07-06 18:33
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
收藏
得分:0 
i 没问题
楼上说的是对的!i没有问题,作用域不同,不冲突.第一个i作用域仅仅限于本for 循环
2008-07-07 21:06
快速回复:求助
数据加载中...
 
   



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

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