啊指针题
老师要我编一个程序,运行时输入10个整数到一维数组,输出其中的最大值和最小值要求是
1,写一个函数:求一维数组中的最大值和最小值
2,要在主函数中,输出该一维数组的最大值和最小值
我太菜了,不知道咋写...
本帖最后由 jackz007 于 2020-12-14 13:52 编辑
#include <stdio.h>
int main(void)
{
int d , k , * p = d , min , max ;
for(k = 0 ; k < 10 ; k ++) {
scanf("%d" ,p + k) ;
if(! k) {
max = min = k ;
} else {
if(* (p + k) > * (p + max)) max = k ;
else if(* (p + k) < * (p + min)) min = k ;
}
}
printf("%d\t%d\n" , * (p + min) , * (p + max)) ;
}
编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
67 56 33 12 29 38 5 90 50 76
5 90
D:\0002.Exercise\C> #include<stdio.h>
int main()
{
void max(int *p, int n);
void min(int *p, int n);
int a;
int i, n = 10, *p;
p = a;
printf("输入10个整数:\n");
for (i = 0;i < 10;i++)
{
scanf("%d", &a);
}
max(a, n);
printf(" the max is : %d \n", a);
min(a, n);
printf(" the min is : %d \n", a);
}
void max(int *p, int n)
{
int i, j, temp;
temp = *(p + 9);
for (i = 9;i >= 0;i--)
{
if (temp < *(p + i))
{
temp = *(p + i);
j = i;
}
}
*(p + j) = *(p + 9);
*(p + 9) = temp;
}
void min(int *p, int n)
{
int i, j, temp;
temp = *p;
j = 0;
for (i = 1;i < n;i++)
{
if (temp > *(p + i))
{
temp = *(p + i);
j = i;
}
}
*(p + j) = *p;
*p = temp;
} 风过无痕1989 发表于 2020-12-14 14:03
老哥,如果我想把void max和void min整合到一个函数中该怎么做
huihuia 发表于 2020-12-16 10:25
老哥,如果我想把void max和void min整合到一个函数中该怎么做
2楼的答案符合题意了吗?题目要求是写一个函数,2楼的程序有这个函数吗?你已经选他的答案为最佳答案了,还来问做啥? 风过无痕1989 发表于 2020-12-16 10:46
2楼的答案符合题意了吗?题目要求是写一个函数,2楼的程序有这个函数吗?你已经选他的答案为最佳答案了, ...
不好意思啊老哥,我现在就再发一个提问,麻烦了
页:
[1]