求大佬帮我看看这个C语言代码哪里出错了?

代码如下:#include<stdio.h>intmain(){inti,n,x,a[10],*res;printf("Inputn:\n");scanf("%d",&n... 代码如下:#include<stdio.h>int main(){ int i,n,x,a[10],*res; printf("Input n:\n"); scanf("%d",&n); printf("Input %d numbers:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); res=a; printf("Input x:\n"); scanf("%d",&x); for(i=0;i<n;i++,res++) if(*res==x) printf("%d是a数组中第%d个元素\n",x,i); if(res>n) printf("a数组中没有找到%d\n",x);}内容如下:输n个数存入数组,然后输入一个数,在数组中找,若找到就输出下标和这个数,若找不到则输a数组中没有找到这个数运行结果如图:求大佬解释一下为什么图1的运行结果会出错?麻烦纠正下错误,谢谢! 展开
 我来答
百度网友c1994c5f8
2019-11-25 · TA获得超过1332个赞
知道小有建树答主
回答量:264
采纳率:89%
帮助的人:199万
展开全部
这里的关键是判断找没找到的条件是什么,需要增加1个变量来计数,代码如下:
#include<stdio.h>
int main()
{
int i,n,x,a[10],*res,count=0; // 增加变量count用于计数找到的个数
printf("Input n:\n");
scanf("%d",&n);
printf("Input %d numbers:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
res=a;
printf("Input x:\n");
scanf("%d",&x);
for(i=0;i<n;i++,res++)
if(*res==x)
{
printf("%d是a数组中第%d个元素\n",x,i);
count++; // 每找到1个,count加1
}
if(count==0) // count为0即一个都没找到
printf("a数组中没有找到%d\n",x);
}
cdyzxy
2019-11-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3646万
展开全部
#include<stdio.h>
int main() { int i,n,x,a[10],*res;
printf("Input n:\n"); scanf("%d",&n);
printf("Input %d numbers:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); res=a;
printf("Input x:\n"); scanf("%d",&x);
for(i=0;i<n;i++,res++) if(*res==x) printf("%d是a数组中第%d个元素\n",x,i);
if(res>=a+n) printf("a数组中没有找到%d\n",x);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzjxbin76
2019-11-25 · TA获得超过123个赞
知道小有建树答主
回答量:251
采纳率:67%
帮助的人:63万
展开全部
if(res>n)要改成if(i>n),res指针变量里保存的是地址,不能和普通的整数作大小比较。其它要注意C语言中下标为1的元素实际是第二个元素。
更多追问追答
追问
你好
改好之后运行结果是这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式