请用c语言编写一段程序,要求如下:输入整数n和key,动态创建n个整数空间并输入n个整数,查找key是否在该集合中, 找到返回key的位置,没找到返回-1,注意:程序应尽量简洁并给出分析
时间: 2023-08-06 10:10:01 浏览: 84
c代码-C语言三个数从小到大排序/输出: 任意输入 3 个整数,编程实现对这 3 个整数由小到大进行排序。 冒泡排序的动画 https://haokan.baidu.com/v?vid=8080732080990475789&pd=bjh&fr=bjhauthor&type=video
以下是使用C语言编写的程序,实现了动态创建n个整数空间,并输入n个整数,查找key是否在该集合中,找到返回key的位置,没找到返回-1。具体注释见代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, key, i, *arr; //定义变量,其中arr为指向整型数组的指针
int position = -1; //初始化位置为-1,表示未找到
printf("请输入整数n和key:\n");
scanf("%d %d", &n, &key);
arr = (int *)malloc(n * sizeof(int)); //动态创建n个整数空间
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]); //输入n个整数
}
for (i = 0; i < n; i++) {
if (arr[i] == key) { //查找key是否在该集合中
position = i; //找到则记录位置
break; //跳出循环
}
}
if (position == -1) {
printf("未找到key\n");
} else {
printf("key的位置为:%d\n", position);
}
free(arr); //释放指针所指向的内存空间
return 0;
}
```
程序的思路比较简单,首先根据输入的n动态创建n个整数空间,然后输入n个整数,接着查找key是否在该集合中,找到则记录位置并跳出循环,最后根据position的值输出结果。在程序结束时,需要释放指针所指向的内存空间,避免内存泄漏。
阅读全文