C语言从键盘输入n(要求手动输入)个整数,求这n个整数的最大值、最小值、最大值序号和最小值序号。

C语言从键盘输入n(要求手动输入)个整数,求这n个整数的最大值、最小值、最大值序号和最小值序号。C语言(要求用函数和指针实现)

#include <stdio>
void main()
{
int n,i,max_v,min_v,max_i,min_i,val;
scanf("%d",&n);

if(n < = 0)//n小于=0 非法;
return;
for(i = 0;i < n;i++)
{
scanf("%d",&val);
if(i == 0)//第一次输入的值 赋值给 最大值 最小值; 序号都赋值为0;
{
max_v = val;
min_v = val;
max_i = i;
min_i = i;
}
else
{
if(val > max_v) //当输入的值 比最大值大,替换最大值, 替换序号;
{
max_v = val;
max_i = i;
}
if(val < min_v) //当输入的值 比最小值小, 替换最小值,替换序号;
{
min_v = val;
min_i = i;
}
}
}

}追问

没有用函数啊

追答

。。随便换换 就行了; 比如:
定义个函数 最大值改变:
void maxchange(int val,int* max,int index,int* i) //要用指针 这个形参传指针就可以了 ;
{
if(val > *max )
*max= val;
*i = index;
}

追问

写完整可以吗,我有点看不懂

追答

if(val > max_v) //当输入的值 比最大值大,替换最大值, 替换序号;
{
max_v = val;
max_i = i;
}
把这个 替换成调用函数; maxchange(val,&max_v,i,&max_i);
下面最小值的替换 仿造上面最大值,写一个替换最小值的函数,然后把 if(val < min_v)语句块替换成 函数调用;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-29
空指针曾经直接导致手机起不来啊追问

你有给可用解释吗,!!!

相似回答