程序功能:查找整数:输入正整数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定义成全局变量
运行结果:
代码:
#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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: