c语言输入10个数存入数组a中,再输入一个数x,用指针方法查找所有与x相同的数组元素(有可能存在多个与x相同的值),输出所有与x相同元素的下标值同时输出与x相同元素的个数,若没找到,则输出“No”。
时间: 2023-06-03 10:02:31 浏览: 115
可以回答。以下是C语言代码实现:
```
#include <stdio.h>
int main() {
int a[10], x;
int *p, count = 0;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("请输入要查找的数:");
scanf("%d", &x);
printf("与%d相同的元素下标为:", x);
for (int i = 0; i < 10; i++) {
if (*(a+i) == x) {
count++;
printf("%d ", i);
}
}
if (count == 0) {
printf("No\n");
} else {
printf("\n%d个元素与%d相同\n", count, x);
}
return 0;
}
```
相关问题
C语言 从键盘上输入10个整数存入数组a中,通过指针将数组元素的值逆序输出
好的,这是一个关于C语言的问题,我可以给你提供代码示例,帮助你解决这个问题。
```c
#include <stdio.h>
int main() {
int a[10];
int *p = a + 9; // p指向数组a的最后一个元素
// 从键盘输入10个整数存入数组a中
printf("请依次输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
// 通过指针将数组元素的值逆序输出
printf("逆序输出数组a的元素:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *p);
p--; // 指针向前移动
}
return 0;
}
```
这段代码的思路是,首先定义一个数组a和指针p,指针p指向数组a的最后一个元素。然后通过循环从键盘输入10个整数存入数组a中。最后再使用指针p逆序输出数组a的元素。
希望这个代码示例能帮助你解决问题。如果有其他问题,可以继续向我提问哦。
c语言使用指针编写一个程序,输入10个整数存入数组,将数组元素逆置后输出。
下面是使用指针实现数组元素逆置的 C 语言程序:
```c
#include <stdio.h>
#define N 10
int main() {
int arr[N];
int *p = arr;
// 输入10个整数
printf("请输入10个整数:\n");
for (int i = 0; i < N; i++) {
scanf("%d", p + i);
}
// 数组元素逆置
for (int i = 0; i < N / 2; i++) {
int temp = *(p + i);
*(p + i) = *(p + N - i - 1);
*(p + N - i - 1) = temp;
}
// 输出逆置后的数组
printf("逆置后的数组为:\n");
for (int i = 0; i < N; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
程序首先定义了一个包含 10 个元素的整型数组 `arr`,并定义了一个指向 `arr` 数组首元素的指针 `p`。接着通过循环输入 10 个整数,并使用指针 `p` 操作数组元素进行赋值。
之后,程序通过循环将数组元素逆置。具体来说,程序使用指针 `p` 操作数组元素进行交换。循环条件为 `i < N / 2`,即只需要交换数组前半部分和后半部分的元素即可。交换元素时,程序需要定义一个临时变量 `temp`,用于保存当前数组前半部分元素的值。
最后,程序通过循环输出逆置后的数组元素。输出时同样使用指针 `p` 操作数组元素进行访问和输出。
阅读全文