| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:菜鸟又发话了
只看楼主 加入收藏
韩剧鼻祖
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-10-1
收藏
 问题点数:0 回复次数:7 
菜鸟又发话了
#include<stdio.h>
int chazhao(int *ptr,int b)
{
int i,c;
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)
{
c=i+1;
return c;
}
else
{
c=-1;
return c;
}
}
}
void main()
{
int i,search,c;
int num[5];
printf("\n 请输入5个数:\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num[i]);
}
printf("\n 请输入要查找的数:");
scanf("%d",&search);
c=chazhao(num,search);
printf("%d",c);
printf("\n");
}
为什么查找输入的第一个数,能显示1,而输入的其他的数进行查找就都显示-1
搜索更多相关主题的帖子: 发话 
2006-10-17 22:15
韩剧鼻祖
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-10-1
收藏
得分:0 

那位大哥哥或大姐姐帮忙看一看啊,无限感激;
感激地都泪哗哗的..............


2006-10-17 22:20
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)
{
c=i+1;
return c;
}
else
{
c=-1;
return c;
}
}
当第一个不是要查找的数时,肯定执行else,就返回到主函数中。此时返回肯定是
-1。
改为下面的就好了。
int chazhao(int *ptr,int b)
{
int i,c;
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)
{
c=i+1;
return c;
}
else
{
c=-1;
}
}
return c;
}

2006-10-17 22:44
韩剧鼻祖
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-10-1
收藏
得分:0 

就没有一个哥哥或姐姐关心你的这个菜鸟小弟么?
哭得眼泪哗哗的


2006-10-17 22:44
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
收藏
得分:0 
以下是引用husi在2006-10-17 22:44:28的发言:
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)
{
c=i+1;
return c;
}
else
{
c=-1;
return c;
}
}
当第一个不是要查找的数时,肯定执行else,就返回到主函数中。此时返回肯定是
-1。
改为下面的就好了。
int chazhao(int *ptr,int b)
{
int i,c;
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)
{
c=i+1;
return c;
}
else
{
c=-1;
}
}
return c;
}


其实还不完善,要是输入的5个数字有重复怎么办,
不是就只能输出1个地址了?

[此贴子已经被作者于2006-10-17 23:00:44编辑过]

2006-10-17 22:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用韩剧鼻祖在2006-10-17 22:15:17的发言:
#include<stdio.h>
int chazhao(int *ptr,int b)
{
int i,c;
for(i=0;i<5;i++,ptr++)
{
if(*ptr==b)//道理很浅显,如果第一个数不等于b,则这个判断不成立,故执行else语句 return -1.所以应该把这样改.
{
c=i+1;
return c;
}
}
return(-1);
}
void main()
{
int i,search,c;
int num[5];
printf("\n 请输入5个数:\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num[i]);
}
printf("\n 请输入要查找的数:");
scanf("%d",&search);
c=chazhao(num,search);
printf("%d",c);
printf("\n");
}
为什么查找输入的第一个数,能显示1,而输入的其他的数进行查找就都显示-1


倚天照海花无数,流水高山心自知。
2006-10-17 23:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

如果你要查找所以与b相等的数就得用个数组把找到的 位置全部保存起来.


倚天照海花无数,流水高山心自知。
2006-10-17 23:26
韩剧鼻祖
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-10-1
收藏
得分:0 
我现在还是有个问题
问二楼的哥哥
假如我现在输入的是6,那在我的chaozhao函数中第一遍for 循环if 就不成立,就要运行else中的程序,那不就先把-1return出来了么
后边是否对错也就判断不了了。
可您这么写为什么就对了呢?
愿听高释

2006-10-18 21:27
快速回复:菜鸟又发话了
数据加载中...
 
   



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

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