用c语言解决问题:数组中已存在10个不同的整数,键盘输入一个整数,输出与该值相同的数组元素下标
时间: 2024-05-06 13:15:49 浏览: 81
以下是用C语言解决该问题的代码:
```c
#include <stdio.h>
int main() {
int arr[10] = {2, 5, 7, 9, 1, 3, 6, 8, 4, 0}; // 已存在的数组
int n, i, flag = 0; // 输入的整数,循环计数器,标志位
printf("请输入一个整数:");
scanf("%d", &n);
for (i = 0; i < 10; i++) {
if (arr[i] == n) { // 如果找到相同的元素
printf("下标为 %d\n", i); // 输出下标
flag = 1; // 设置标志位为1
}
}
if (!flag) { // 如果标志位为0,说明没有找到相同的元素
printf("不存在该元素\n");
}
return 0;
}
```
代码中,我们先定义了一个已存在的数组 `arr`,并初始化了其中的10个不同整数。然后,从键盘输入一个整数 `n`,接着用循环遍历数组 `arr`,查找是否有与 `n` 相同的元素。如果找到了,就输出该元素的下标,并将标志位 `flag` 设置为1;如果没有找到,就输出不存在该元素的信息。最后,程序返回0,表示正常结束。
相关问题
C语言已知一维数组中的10个元素各不相同,但已按升序排列。查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。你有什么好方法吗? 输入要求 先从键盘输入10个升序排列的整数,然后再输入一个待查找的数据key。 输出要求 输出对应结果。若不存在则输出not found.
我可以为您提供一个简单的线性查找算法来解决这个问题。您可以使用一个循环来遍历数组中的每个元素,直到找到与key相等的元素为止。如果找到了,就输出相应的下标,否则输出"not found"。
以下是一个示例C语言代码实现该算法:
```
#include <stdio.h>
int main() {
int arr[10];
int key;
int i;
// 从键盘输入10个升序排列的整数
printf("请依次输入10个升序排列的整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 输入待查找的数据key
printf("请输入待查找的数据:\n");
scanf("%d", &key);
// 线性查找数组中是否存在值为key的元素
for (i = 0; i < 10; i++) {
if (arr[i] == key) {
printf("找到%d,下标为%d。\n", key, i);
return 0; // 找到了,直接退出程序
}
}
// 没找到
printf("not found.\n");
return 0;
}
```
阅读全文