求大佬帮我看看这个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的运行结果会出错?麻烦纠正下错误,谢谢!
展开
3个回答
展开全部
这里的关键是判断找没找到的条件是什么,需要增加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);
}
#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);
}
展开全部
#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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(res>n)要改成if(i>n),res指针变量里保存的是地址,不能和普通的整数作大小比较。其它要注意C语言中下标为1的元素实际是第二个元素。
更多追问追答
追问
你好
改好之后运行结果是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询