C++ 指针与一维数组编程题目

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:33:46
对指针确实还不太明白,紧急求助!

注意是 C++ !不要用C语言回答!

要求使用主函数和给定的自定义函数。

1.从键盘任意输入10个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组中的位置。
函数功能: 求n个数中的最大值和最小值及其所在下标位置
函数入口参数: 整型数组num,存储n个整数;整型变量n,表示数组元素个数
函数出口参数:
整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置;
整型指针变量pMax,指向的地址单元存储最大值;
整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置;
整型指针变量pMin,指向的地址单元存储最小值。
函数返回值: 无
void FindMaxMin(int num[], int n, int *pMax, int *pMaxPos, int *pMin, int *pMinPos)

2.假设每班人数最多不超过40人,具体人数由键盘输入,用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分和学号。函数原型如下:
函数功能:计算最高分及最高分学生的学号
函数参数:整型数组score,存放学生的成绩
长整型数组num,存放学生的学号
长整型指针变量pMaxNum,存放求出来的最高分学生的学号
函数返回值:最高分
int FindMax(int score[], long num[], int n, long *pMaxNum);
一楼的没有按要求,二楼有一点点小问题:输出的两个下标是一样的,还有输入的时候能不能是横排的?

#include <iostream.h>
#include <iomanip>
void FindMaxMin(int num[100], int n, int **pMax, int &pMaxPos, int **pMin, int &pMinPos);
int main()
{
int a[100],p;
cout<<"需要输入多少个数来比较:";
cin>>p;
if(p<0 && p>100)
{
cout<<"超出范围!"<<endl;
}
else if(p==0)
{
exit(0);
}
for(int i=0;i<p;i++)
{
cout<<"num["<<i<<"]=";
cin>>a[i];
}
int *pMax=0;
int *pMin=0;
int pMaxPos=0,pMinPos=0;
FindMaxMin(a,p,&pMax,pMaxPos,&pMin,pMinPos);
cout<<"数组中最大的数是:"<<*pMax<<" ||| "<<"其下标为:"<<pMaxPos<<endl;
cout<<"数组中最小的数是:"<<*pMin<<" ||| "<<"其下标为:"<<pMinPos<<endl;
return 0;
}
void FindMaxMin(int num[100], int