c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组相关的知识,希望对你有一定的参考价值。
c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组比如五个数:5 6 1 8 3
则最小值为:1
最后输出结果为:1 6 5 8 3
#define N 5
int main()
int arr[N];
int i,min,j,tmp;
printf("输入5个数字: ");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0,min=arr[0];i<N;i++)
if(min>arr[i])
min=arr[i];
j=i;
arr[j]=arr[0];
arr[0]=min;
printf("输出结果为: ");
for(i=0;i<N;i++)
printf("%d ",arr[i]);
printf("\\n");
return 0;
追问
数组运用到了 可是指针呢😭 必须要用到指针呢
追答噢噢,好的,我修改下代码吧。修改后的代码如下:
#include <stdio.h>#define N 5
int main()
int arr[N];
int *p,*q; //指针p用来遍历数组元素,指针q用来指向当前的最小值元素
printf("输入5个数字: ");
for(p=arr;p<arr+N;p++)
scanf("%d",p);
for(p=q=arr;p<arr+N;p++)
if(*q > *p)
q=p;
arr[0]= *q;
*q=arr[0];
printf("输出结果为: ");
for(p=arr;p<arr+N;p++)
printf("%d ",*p);
printf("\\n");
return 0;
追问
出错了🙄
一点小问题 我自己改了下 加了个变量t 把它们替换下就行了
还是谢谢你了
😊😊😊😊😊
参考技术A #include<stdio.h>void main()
double a[] = 3, 4.2, 4, 5.3, 1, 0.4, 5;
double *max=(double *)malloc(sizeof(double)); // 最大值指针
double *min=(double *)malloc(sizeof(double)); // 最小值指针
int i;
*max = a[0]; // 初始化最大值
*min = a[0]; // 初始化最小值
for(i=1; i<7; i++) // 7表示数组a的长度
if(*max<a[i])
*max = a[i]; // 保存最大值
if(*min>a[i])
*min = a[i]; // 保存最小值
c语言辗转相除法求最大公约数和最小公倍数
参考技术Ac语言辗转相除法求最大公约数和最小公倍数的方法如下:
一、算法思想
利用格式输入语句将输入的两个数分别赋给a和b,然后判断a和b的关系,如果a小于b,则利用中间变量t将其互换。再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。
二、名词解释
1、最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。
2、最大公约数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
3、辗转相除法: 是求最大公约数的一种方法。即用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
以上是关于c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组的主要内容,如果未能解决你的问题,请参考以下文章
C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢