C语言数组--数组元素判断查询

C语言数组–数组元素判断查询

1.问题描述

今天在复习C语言的数组部分的内容,然后复习过程有一个题目要去做
C语言数组--数组元素判断查询_第1张图片
在做第三个题目的时候,整个人的思路卡住了,因为if()函数里面不能嵌套for()循环,然后如果在for()函数里面嵌套了if_else()的判断思路,则需要进行每一次的数组元素判断,这样打印输出的结果是每一次判断的结果,而无法进行直接的判断。
比如,我输入34,我就要输出结果一句:“该值不在数列之中”,如果我输入1,输出结果就只有一句:“该值在于数列之中”

2.代码思路

如果输入的值在数列值中有某个相等,那这个比较好判断,直接用for()循环嵌套if()判断,判断输入值与数组的元素是否相等,如果相等,直接输出:“该值在于数列之中”就可以了,然后跳出循环就可。这个方法就是穷举法
当这个值并不和数列中任何值相等时,根据穷举法的那个循环判断,最终跳出循环的时候,循环变量i的值和N相等,那么就要输出另一个输出结果:“该值不在于数列之中”;如果i不等于N,说明是中途异常强制跳出循环,那就是执行力break语句了。

3.参考代码

下面是参考的代码,其中最核心的部分就是在于循环判断while(1)的结构语句那几句:

#include 
#include 
#define N 7

int main()
{
     
    int array1[N] = {
     8,4,2,1,23,344,12};
    int i;
    int sum = 0;
    int n;
    int avery;
    for(i = 0;i < N;i++)
    {
     
        printf("array1[%d]=%d\n",i,array1[i]);
    }
    for(i = 0;i < 7;i++)
    {
     
        sum = sum + array1[i];
    }
    avery = sum / N;
    printf("数列的数值之和=%d以及平均值=%d\n",sum,avery);
    while(1)
    {
     

        printf("\n请输入一个判断数值:");
        scanf("%d",&n);
        printf("\n");
        for(i = 0;i < N;i++)
        {
     
            if(n == array1[i])
            {
     
               printf("数列包含这个数值\n");
               break;
            }
        }
        if(i == 7)
        {
     
            printf("抱歉,数列中没有这个数值\n");
        }
    }
    return 0;
}

写在最后

这是一个很小的问题 但是这里面有一个很巧妙的逻辑思路,阿钦希望通过博客一方面记录自己的错误,方便以后自己复习,也希望文章分享出去,可以帮助更多的人避开这种错误,掌握这些逻辑。这些是很基础的东西,大佬们看完请不要喷我,感谢大家的阅读。

你可能感兴趣的:(C语言,嵌入式实训,c语言,数据结构)