c语言 数组编程 c语言

程序功能:查找整数:输入正整数n(1≤n≤20)和整数x,再输入n个整数并存放在数组a中,在数组a的元素中查找与x相同的元素,如果找到,输出x在数组a中的最小下标;如果没有找到,输出“NotFound”试编写相应程序,自定义函数int findFirst()函数完成程序功能,由于涉及未学到的参数传递知识点,此处可以使用无参调用,main主函数中调用findFirst函数。
(1)设计两项功能选择:查找数据和退出。
(2)main主函数完成数据的输入与最小下标的输出
(3)int findFirst(),查找x在数组a中的最小下标,并将最小下标值通过return语句返回。
(4)数组a的作用保存n个整数,数组a定义成全局变量

运行结果:

img

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int a[20]; //全局变量a,保存所有数
int x; //需要查找的数
int n; //数据个数
//查找x在数组a中的最小下标,并将最小下标值通过return语句返回
int findFirst()
{
    int i = 0;
    for (; i < n; i++)
    {
        if (a[i] == x)
            return i; //找到后返回下标
    }
    return -1; //没有找到
}

int main()
{
    int op;
    int i;
    int res = -1;
    printf("请输入正整数n:");
    scanf("%d", &n);
    printf("请输入%d个整数:\n", n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]); //读取n个整数放入数组a中
    while (1)
    {
        printf("1.查找数据\n");
        printf("2.退出\n");
        printf("请选择:");
        scanf("%d", &op);
        if (op == 1)
        {
            printf("请输入需要查找的数x:");
            scanf("%d", &x);
            res = findFirst();
            if (res >= 0)
                printf("%d在数组a中的最小下标是%d\n", x, res);
            else
                printf("Not Found\n");
        }
        else if (op == 2)
            break; //结束循环
    }
    return 0;
}

最小下标:就是找到的第一个x的下标返回就行

#include <stdio.h>
#include <stdlib.h>
int a[20];
int n = 0;
int x = 0;
int findFirst()
{
    for(int i=0;i<n;i++)
    {
        if(a[i] == x)
            return i;
    }
    return -1;
}

int main()
{
     printf("输入数组长度:");
     scanf("%d",&n);
     printf("输入%d个整数:",n);
     for(int i=0;i<n;i++)
          scanf("%d",&a[i]);
     while(1)
     {
          printf("1、查询数据\n");
          printf("0、退出\n");
          printf("请输入您的选择(0或1):");
          int sel = 0;
          scanf("%d",&sel);
          switch(sel)
          {
              case 1:
              {
                  printf("输入查询的数:");
                  scanf("%d",&x);
                  int idx = findFirst();
                  if(idx<0)
                      printf('NotFound\n");
                  else
                      printf("%d\n",idx);
                  break;
              }
              case 0:
                  exit(0);
              
          }
          system("pause");
          system("cls");
     }
}

#include <stdio.h>
#include <string.h>

int a[20];

int findFirst(int num,int find_num)
{
    int i=0;

    for(i = 0;i < num;i++)
    {
        if(a[i] == find_num)
        {
            return i;
        }
    }
    return -1;
}

int main(void)
{
    int i = 0;
    int n = 0;
    int x = 0;

    memset(a,0,sizeof(a));

again:
    printf("输入1-20的正整数n:");
    scanf("%d",&n);
    if((n <= 0) || (n > 20))
    {
        printf("输入error\n");
        goto again;
    }

    printf("输入%d个整数:",n);
    for(i = 0;i < n;i++)
    {
        scanf("%d",&a[i]);
    }

    while(1)
    {
        printf("1.查询数据\n");
        printf("0.退出\n");
        printf("请输入您的选择(0或1):");
        int mode = 0;
        scanf("%d",&mode);
        switch(mode)
        {
        case 1:
        {
            printf("输入查询的数:");
            scanf("%d",&x);
            int ret = findFirst(n,x);
            if(ret == -1)
            {
                printf("NotFound\n");
            }
            else
            {
                printf("最小下标: a[%d]=%d\n",ret,x);
            }
        }
            break;

        case 0:
        {
            printf("退出程序\n");
            return 0;
        }
            break;

        default :
            printf("输入error\n");
            break;
        }
    }

    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632