C++简单的查找问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:17:54
输入十个数,将最大的和第一个调换,最小和最后的调换,程序出错。帮忙看看吧!要用指针,数组就免了。
#include <iostream>
#include <cstdlib>
#define N 10

using namespace std;

void Input(int *p);
void Array(int *p);
void Output(int *p);

int main(int argc,char *argv[])
{
int num[N];
Input(num);
Array(num);
Output(num);

system("PAUSE");
return EXIT_SUCCESS;

}//end main

void Input(int *p)
{
int i;
for(i=0;i<10;i++)
{
cin>>*(p+i);

}//end for

}//end Input

void Array(int *p)
{
int i,posMax,max,posMin,min,temp;
for(i=0;i<N;i++)
{
if(max<*(p+i))
{
max=*(p+i);
posMax=i;

}//end if

Array里的max没初始化

这是代码,DC下编译通过

#include <iostream>
#include <cstdlib>
#define N 10

using namespace std;

void Input(int *p);
void Array(int *p);
void Output(int *p);

int main(int argc,char *argv[])
{
int num[N];
Input(num);
Array(num);
Output(num);
system("PAUSE");

return EXIT_SUCCESS;

}//end main

void Input(int *p)
{
int i;
for(i=0;i<10;i++)
{
cin>>*(p+i);

}//end for

}//end Input

void Array(int *p)
{
int i,posMax,max=-1000,posMin,min,temp;
max=*p;
posMax=0;
for(i=1;i<N;i++)
{
if(max<*(p+i))
{
max=*(p+i);
posMax=i;
}//end if
}//end for

min=*p;
posMin=0;
for(i=1;i<10;i++)
{
if(min>*(p+i))
{