c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组比如五个数:5 6 1 8 3
则最小值为:1
最后输出结果为:1 6 5 8 3
#include <stdio.h>
#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;
}追问
#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;
}追问
#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 把它们替换下就行了
还是谢谢你了
😊😊😊😊😊
温馨提示:答案为网友推荐,仅供参考
第1个回答 2017-11-23
#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]; // 保存最小值
}
}
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]; // 保存最小值
}
}