| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:代码问题,可以运行,。但是运行结果和预计不一样
只看楼主 加入收藏
Erfeel
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-9-10
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:5 
代码问题,可以运行,。但是运行结果和预计不一样
#include "stdio.h"
void main()
{

    int i,x,l,m,h;
    int a[10];
    l=0,h=9;
   
    for(i=0;i<10;i++)
        scanf("%d",&a[10]);
    printf("input a num:\n");
    scanf("%d",&x);
    m=(l+h)/2;
   
    while(a[m]!=x&&l<=h)
    {
        if(a[m]>x)
            h=m-1;
        else
            l=m+1;
        m=(l+h)/2;
    }
    if(a[m]==x)
        printf("position  is %d\n",m+1);
    else
        printf("unfind\n",x);
}
搜索更多相关主题的帖子: include 
2015-09-10 17:28
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:4 
程序代码:
#include "stdio.h"
void sort(int[],int);
main()
{

    int i,x,l,m,h;
    int a[10];
    l=0,h=9;
    
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("input a num:\n");
    scanf("%d",&x);
    m=(l+h)/2;
    sort(a,10);
    while(a[m]!=x&&l<=h)
    {
        if(a[m]>x)
        {
            h=m-1;
            m=(l+h)/2;
        }
        else if(a[m]<x) 
        {
            l=m+1;
                m=(l+h)/2;
        }
    }
    if(a[m]==x)
        printf("position  is %d\n",m+1);
    else
        printf("unfind\n",x);
}
void sort(int a[],int n)
{
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                a[j]=a[j]^a[j+1];
                a[j+1]=a[j]^a[j+1];
                a[j]=a[j]^a[j+1];
            }
        }
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2015-09-10 17:45
Erfeel
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-9-10
收藏
得分:0 
回复 2楼 林月儿
非常感谢你的回答,我试着运行了下,发现在for(int i=0;i<n-1;i++)行开始出现如下错误,37 C:\Users\Administrator\Documents\未命名1.c 'for' loop initial declaration used outside C99 mode ,我百度下,是C99不允许在循环的括号中定义变量,for语句不能定义变量么?还有下面这个a[j]=a[j]^a[j+1];  a[j+1]=a[j]^a[j+1];   a[j]=a[j]^a[j+1];不懂做什么用,清帮忙解释下,非常感谢
2015-09-10 20:42
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
以下是引用Erfeel在2015-9-10 20:42:15的发言:
'for' loop initial declaration used outside C99 mode
我百度下,是C99不允许在循环的括号中定义变量

少用百度,…… outside C99 mode 的意思是 你在C99之外使用了for初始化
也就是你应该指定编译器使用C99模式,编译参数加 -std=C99
2015-09-10 22:33
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:4 
在执行语句中声明变量是c++的语法,你在  .c文件中使用,编译不过是正常的。
2015-09-10 22:49
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 jklqwe111
程序代码:
#include "stdio.h"
void sort(int[],int);
void main()
{

    int i,x,l,m,h;
    int a[10];
    l=0,h=9;
    
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("input a num:\n");
    scanf("%d",&x);
    m=(l+h)/2;
    sort(a,10);
    while(a[m]!=x&&l<=h)
    {
        if(a[m]>x)
        {
            h=m-1;
            m=(l+h)/2;
        }
        else if(a[m]<x) 
        {
            l=m+1;
                m=(l+h)/2;
        }
    }
    if(a[m]==x)
        printf("position  is %d\n",m+1);
    else
        printf("unfind\n",x);
}
void sort(int a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                a[j]=a[j]^a[j+1];
                a[j+1]=a[j]^a[j+1];
                a[j]=a[j]^a[j+1];
            }
        }
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2015-09-11 06:26
快速回复:代码问题,可以运行,。但是运行结果和预计不一样
数据加载中...
 
   



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

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