PAT题目总,不知哪里错了,百思不解!!!!!!!

fzx6393 2014-09-19 10:05:12
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

输入格式:

输入在第1行中给出2个正整数N(<=20)和X,第2行给出N个整数。数字均不超过长整型,其间以空格分隔。

输出格式:

在一行中输出X的位置,或者“Not Found”。
输入样例1:5 7
3 5 7 1 9

输出样例1:2

输入样例2:5 7
3 5 8 1 9

输出样例2:Not Found


#include<stdio.h>
int main()
{
long int n,b,a[n],i=0,j,t=0;
scanf("%d %d",&n,&b);
while(i<n)
{
scanf("%d",&a[i]);
i++;
}
for(j=0;j<n;j++)
{
if(b==a[j])
{
t=1;
break;
}
}
if(t==1)
{
printf("%d",j+1);
}
else
{
printf("Not Found");
}
}
...全文
749 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-12-07
  • 打赏
  • 举报
回复
我粘贴这段的时候从来不看楼主问的是啥问题。
饶伟健 2015-12-06
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
呵呵,说起来一套一套的,跟政府官员一样。 PAT这种题库,错了不知道哪里错的,看不见输入数据,不知道正确答案。这跟调试,看日志有什么关系? 就你这还骗了那么多积分,都是复制粘贴的吗?
饶伟健 2015-12-06
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
忍不住再喷一句,你看完楼主的问题没?装NMB的大神
百曉生 2014-09-20
  • 打赏
  • 举报
回复
按二楼的改了以后再
引用 8 楼 u012421456 的回复:
定义的是long,输入的时候用%ld试试
百曉生 2014-09-20
  • 打赏
  • 举报
回复
定义的是long,输入的时候用%ld试试
勤奋的小游侠 2014-09-19
  • 打赏
  • 举报
回复
题目对时间,内存有没有要求?将函数内的变量全部移出 函数外,改用全局变量。
赵4老师 2014-09-19
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
fzx6393 2014-09-19
  • 打赏
  • 举报
回复
引用 4 楼 brookmill 的回复:
实在看不出来还有哪错了。我自己写了一个作为参考吧
#include<stdio.h>

int main()
{
  int n, i, result = -1;
  long a, x;
  scanf("%d %ld", &n, &x);
  for (i = 0; i < n; i++) {
    scanf("%ld", &a);
    if (result < 0 && a == x) {
      result = i;
    }
  }
  if (result >= 0) {
    printf("%d\n", result);
  } else {
    printf("Not Found\n");
  }
  return 0;
}
谢谢! 虽然编译还是部分错误,还是感谢你的帮助!
brookmill 2014-09-19
  • 打赏
  • 举报
回复
实在看不出来还有哪错了。我自己写了一个作为参考吧
#include<stdio.h>

int main()
{
  int n, i, result = -1;
  long a, x;
  scanf("%d %ld", &n, &x);
  for (i = 0; i < n; i++) {
    scanf("%ld", &a);
    if (result < 0 && a == x) {
      result = i;
    }
  }
  if (result >= 0) {
    printf("%d\n", result);
  } else {
    printf("Not Found\n");
  }
  return 0;
}
fzx6393 2014-09-19
  • 打赏
  • 举报
回复
引用 1 楼 brookmill 的回复:
1. 编译器支持可变长数组吗?把a[n]改成a[30]试试 2. 只处理一组数据就行吗? 3. 对long int用%d可能会有问题
%ld j+1 这些在修改后 编译器提示有部分错误 0 答案错误 1 256 0/4 1 答案正确 1 256 1/1 2 答案错误 1 256 0/2 3 答案正确 1 256 1/1 4 答案错误 1 256 0/2
brookmill 2014-09-19
  • 打赏
  • 举报
回复
printf("%d",j+1); // 这里错了,应该是 printf("%d",j); 输出X的位置(从0开始数)
brookmill 2014-09-19
  • 打赏
  • 举报
回复
1. 编译器支持可变长数组吗?把a[n]改成a[30]试试 2. 只处理一组数据就行吗? 3. 对long int用%d可能会有问题

69,381

社区成员

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

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