| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:写了一个在一个有序数组里查找一个数的程序,但是调试时总是出错,请帮忙看 ...
只看楼主 加入收藏
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
写了一个在一个有序数组里查找一个数的程序,但是调试时总是出错,请帮忙看看,谢谢!
代码如此下:
/*在一个有序数组中查找一个数是否在其中,若在输出该数在数组中的位置,若不在输出-1*/
#include<stdio.h>
#define N 10
void chazhao(int x)/*定义查找函数*/
{
    int array[N]={-65,0,21,58,78,90,98,106,124,577};/*有序数组*/
    int i,j;flag=0;location=0;
    for(i=0;i<N;i++)/*利用顺序查找法查找*/
        if(x==array[i])
        {
            location=i;
            flag=1;
            break;
        }
        switch(flag)/*输出查找的结果*/
        {
        case 0:printf("-1/n");break;
        case 1:printf("%d在数组中的位置是%d",x,location);break;
        }
}
int main()
{
    int  a;
    printf("请输入要查找的数:/n");
    scanf("%d".&a);/*获取要查找的数*/
    chazhao(a);/*调用查找函数*/
    return 0;
}
上面是代码,以下是错误的提示:
Compiling...
Error spawning cl.exe

d.obj - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: 106 124 include 
2012-04-22 13:25
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:10 


程序代码:
#include<stdio.h>

 #define N 10

 void chazhao(int x)/*定义查找函数*/

 {
     int array[N]={-65,0,21,58,78,90,98,106,124,577};/*有序数组*/
     int i,j;flag=0;location=0;              /*  int i,j,flag=0,location=0;            */
     for(i=0;i<N;i++)/*利用顺序查找法查找*/
         if(x==array[i])
         {
             location=i;
             flag=1;
             break;
         }
         switch(flag)/*输出查找的结果*/
         {
         case 0:printf("-1/n");break;
         case 1:printf("%d在数组中的位置是%d",x,location);break;
         }

 }

 int main()

 {
     int  a;
     printf("请输入要查找的数:/n");
     scanf("%d".&a);            /*  scanf("%d",&a);  */
     chazhao(a);/*调用查找函数*/
     return 0;

 }

 
很简单的马虎的错误,根据提示错误行你看不出来么?
2012-04-22 13:56
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:10 
2楼正解
2012-04-22 14:17
幸福小石头
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2012-3-17
收藏
得分:0 
经修改后:正确代码如下:
#include<stdio.h>
#define N 10

void chazhao(int x)
{
    int array[N]={-65,0,21,58,78,90,98,106,124,577};
    int i,j,flag=0,location=0;
    for(i=0;i<N;i++)
        if(x==array[i])
        {
            location=i+1;
            flag=1;
            break;
        }
        switch(flag)
       {
        case 0:printf("-1\n");break;
        case 1:printf("%d在数组中的位置是%d\n",x,location);break;
        }
}
int main()
{
    int a;
    printf("请输入要查找的数:\n");
    scanf("%d",&a);
    chazhao(a);
    return 0;
}
下午编译器出毛病了,没提示具体错误,彩色的两个逗号修改前时分号,造成flag,location没被定义,呵呵,承认自己马虎了,呵呵,谢谢各位,
2012-04-22 20:05
快速回复:写了一个在一个有序数组里查找一个数的程序,但是调试时总是出错,请帮 ...
数据加载中...
 
   



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

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