第一周作业1:查找整数

第一周作业1:查找整数

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

输入格式:

输入在第一行中给出两个正整数N(≤20)和X,第二行给出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

1.实验代码:

#include<stdio.h>
#define N 20   //宏定义N代表20
int main()
{   
    int i;
    long n, x;  //定义长整型n,x
    int a[N];
    
    scanf("%ld %ld", &n, &x);  //注意长整型对应的格式符号ld%
    for(i=0; i<n; i++)  //将数字存放到数组中  
    {
        scanf("%d", &a[i]); 
    }
    for(i=0; i<n; i++)
        {
        if(a[i] == x)
        { 
            printf("%d", i);
            break;
        }
         }
    if(i==n)
    printf("Not Found");
    return 0;
}

2.设计思路:

3.本题调试过程碰到的问题级解决办法

问题1:下面有一个错误截图是第一次测试结果,遇到了【段错误】(错误截图1)
解决方案1:这里讲述一下我收集到的段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里想更了解的我可以推荐一篇博客https://blog.csdn.net/e_road_by_u/article/details/61415732

问题2:开始以为是因为Break语句导致的错误
解决方案2:将break删掉,进行运行,得到的是错误的,根据错误可取推想原因出在了哪里,后来又将最后一个if语句的条件改了才运行正确,因为一开始并没有想到这种所以直接去掉了break语句用了return 0结束(正确截图2)

4.运行截图

正确截图

错误截图

猜你喜欢

转载自www.cnblogs.com/surenjiesu/p/10452194.html
今日推荐