c语言中,运用指针,从键盘输入10个整数,求出其中最小值

2024-12-03 19:42:43
推荐回答(3个)
回答(1):

C语言程序如下:

#define _CRT_SECURE_NO_WARNINGS

#include

#include

void input(int* p) {

for (int i = 0; i < 10; ++i, ++p) {

printf("请输入第%d个数的值\n", i + 1);

scanf("%d", p);

}

}

void print(int* p) {

for (int i = 0; i < 10; ++i, ++p) {

printf("%d ", *p);

}

printf("\n");

}

void fun(int* q) {

int* p = q;

int* minp = p;

int* maxp = p;

int temp;

for (int i = 1; i < 10; ++i, ++p) {

if (*maxp < *p) {

maxp = p;

}

if (*minp > *p) {

minp = p;

}

}

temp = *maxp;

*maxp = *p;

*p = temp;

temp = *minp;

*minp = *q;

*q = temp;

}

void main() {

int arr[10];

int* p = arr;

input(p);

print(p);

fun(p);

print("最小值为",p[0]);

system("pause");

}

扩展资料:

程序思路:

(指针方法处理)输入十个整数, 将其中最小的数与第一个数对换,把最大的数与最后一个数对换,因此便可得到最小值为指针的第一个元素。

将程序分为三部分:输入、比较、输出,分别对应一个函数

1、输入十个数; 

2、进行处理; 

3、 输出最小值。

回答(2):

#include 
#define N 10
int main()
{
    int arr[N],min,i;
    int *p=NULL;  //定义一个int型指针变量
    p=arr;      //指针变量p指向数组arr
    for(i=0;i        scanf("%d",p+i);  //输入数组元素
    for(min=*p;p    {
        if(min>*p)   //如果当前最小值大于当前元素,则将该元素赋值给min
            min=*p;
    }
    printf("最小值= %d\n",min);  //输出数组元素的最小值
    return 0;
}

回答(3):

#include 
 
#include 
 
using namespace std;
 
int main()
 
{
 
    int a[10];
 
    for(int i=0;i<10;i++)
 
    {
 
            scanf("%d",&a[i]);
 
    }
 
    for(int i=0;i<10;i++)
 
    {
 
            for(int j=0;j<10;j++)
 
            {
 
                    if(a[j]>a[j+1])
 
                        swap(a[j],a[j+1]);
 
            }
 
             
 
    }
 
    printf("%d  %d",a[0],a[1]);
 
}