编写程序,输入10个整数到一个整型数组中,然后使用指针遍历该数组,找出最小值,输出其值和相应的数组下标。c++
时间: 2024-03-15 14:44:12 浏览: 73
下面是代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[10];
int *p = arr;
int min = *p;
int min_index = 0;
// 输入10个整数到数组中
cout << "请输入10个整数:" << endl;
for (int i = 0; i < 10; i++) {
cin >> *(p + i);
}
// 遍历数组,找出最小值及其下标
for (int i = 0; i < 10; i++) {
if (*(p + i) < min) {
min = *(p + i);
min_index = i;
}
}
// 输出最小值及其下标
cout << "最小值为:" << min << endl;
cout << "最小值在数组中的下标为:" << min_index << endl;
return 0;
}
```
运行结果示例:
```
请输入10个整数:
3 1 5 6 2 8 4 9 0 7
最小值为:0
最小值在数组中的下标为:8
```
相关问题
c++ 编写程序,输入10个整数到一个整型数组中,然后使用指针遍历该数组,找出最小值,输出其值和相应的数组下标
好的,我来为您解答这个问题。
以下是完整的C++代码:
```cpp
#include <iostream>
using namespace std;
int main()
{
int arr[10]; // 定义一个长度为10的整型数组
int *p = arr; // 定义指向数组首元素的指针
// 输入10个整数到数组中
cout << "请输入10个整数:" << endl;
for(int i = 0; i < 10; i++)
{
cin >> arr[i];
}
// 找出最小值及其下标
int min = *p; // 假设首元素为最小值
int index = 0; // 最小值的下标
for(int i = 0; i < 10; i++)
{
if(*(p+i) < min)
{
min = *(p+i);
index = i;
}
}
// 输出最小值及其下标
cout << "最小值为:" << min << endl;
cout << "最小值的下标为:" << index << endl;
return 0;
}
```
代码执行过程如下:
```
请输入10个整数:
5 9 27 3 8 15 6 10 19 4
最小值为:3
最小值的下标为:3
```
注:代码中使用了指针变量 `p` 来遍历数组元素,`*(p+i)` 可以代替数组下标访问元素。另外,由于数组名 `arr` 也可以看作指向数组首元素的指针,因此 `p = arr`,可以直接使用 `*(arr+i)` 访问元素。
编写程序C语言,任意输入一个10个数据元素一维数组,在这个一维数组中找出最大值和最小值,交换二者位置。
在C语言中,你可以通过以下步骤编写一个函数来找到并交换一维数组中的最大值和最小值:
首先,我们需要包含一些必要的头文件,并声明一个辅助函数用于交换两个整数。
```c
#include <stdio.h>
#include <limits.h> // 包含INT_MAX和INT_MIN
// 辅助函数用于交换两个整数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
然后,创建一个名为`find_and_swap()`的主函数,它接收一个指向数组的指针、数组长度以及数组的起始索引:
```c
int find_and_swap(int arr[], int size, int start_index) {
int min = INT_MAX; // 初始化最小值为整型最大值
int max = INT_MIN; // 初始化最大值为整型最小值
// 遍历数组寻找最小值和最大值
for (int i = start_index; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
}
// 如果找到最大值和最小值,交换它们的位置
if (min != max) {
swap(&arr[start_index], &arr[start_index + (size - start_index - 1)]);
}
return max; // 返回最大值作为结果
}
int main() {
int arr[10]; // 假设用户输入了10个数据元素
printf("Enter 10 numbers: ");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
int result = find_and_swap(arr, sizeof(arr) / sizeof(arr[0]), 0); // 开始从第一个元素查找
printf("After swapping, the array is: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\nMax value after swap: %d\n", result);
return 0;
}
```
当你运行这个程序时,它会提示用户输入10个数字,然后找到并交换最大值和最小值的位置,最后打印出交换后的数组和新的最大值。
阅读全文