输入15个整数存入一维数组,从中查找某个整数,(该数从健盘上读取),若查到,输出它是5个数中的第几个数(序号从1开始);若查不到,则输出"Not Find".

xqyunyun 2009-07-26 04:07:22
输入10个整数存入一维数组,从中查找某个整数,(该数从健盘上读取),若查到,输出它是10个数中的第几个数(序号从1开始);若查不到,则输出"Not Find",要求用指针处理.

void Main
{
int a[5],*p,x,n,flag=0;
printf("请输入10个整数!!!\n");
for(p=a;p<a+10;p++)
{
scanf("%d",p);
}
printf("请输入一个你要找的整数!!!\n");
scanf("%d",&x);
printf("你输入的数为:%d\n",x);
for(n=0,p=a;p<a+10;p++,n++)
{
if(*p==x)
{
flag=1;break;
}
if(flag)
{
printf("找到数为%d\n",n);
}
else
{
printf("Not Find\n");
}
}
}

问题:输入的数为1,2,3,4,5,9,10,11,21,22
回车
输入3,没有找到数.
明明存入数组中有10个数,为什么第二循环找不到这个数呢?请高手帮忙检查检查。
使用的工具为:Micrsoft visual c++ 6.0.
此题是自考(专科)高级语言程序设计 主编:迟成文。
...全文
1204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
veranh 2009-07-26
  • 打赏
  • 举报
回复
嗯~提醒一下!就是找到的时候输出要是 printf("找到数为%d\n",n+1); 不然序号就不是从1开始了
loulanhaojie 2009-07-26
  • 打赏
  • 举报
回复
很明显的 int a[10]才行
stardust20 2009-07-26
  • 打赏
  • 举报
回复
前面注释打错了。。是a[5]改成a[10]
stardust20 2009-07-26
  • 打赏
  • 举报
回复
void main()
{
int a[10],*p,x,n,flag=0; //a[5]改成a[0]
printf("请输入10个整数!!!\n");
for(p=a;p <a+10;p++)
{
scanf("%d",p);
}
printf("请输入一个你要找的整数!!!\n");
scanf("%d",&x);
printf("你输入的数为:%d\n",x);
for(n=0,p=a;p <a+10;p++,n++)
{
if(*p==x)
{
flag=1;break;
}
}
//要移到for外面
if(flag)
{
printf("找到数为%d\n",n); //数组从0开始
}
else
{
printf("Not Find\n");
}
}
mstlq 2009-07-26
  • 打赏
  • 举报
回复
int a[10]
谢谢……
stardust20 2009-07-26
  • 打赏
  • 举报
回复
用a[5]存十个数?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧