您的位置:首页 > 其它

定义一个一维数组,写以下6个函数来完成相应功能,在主函数中调用这6个函数。(要求,函数形参都为指针变量)

2012-12-20 08:19 429 查看
// 121219  上机任务2.cpp : 定义控制台应用程序的入口点。
//
/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:  刘同宾
* 完成日期:2012 年 12 月 18 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:(2)定义一个一维数组,写以下6个函数来完成相应功能,在主函数中调用这6个函数。(要求,函数形参都为指针变量)

函数1,完成对该数组元素的键盘值输入

函数2,完成对该数组元素的遍历输出

函数3,求该数组元素的最大值。

函数4,用选择法对该数组进行从大到小排序

函数5,用冒泡法对该数组进行从小到大排序

函数6,对该数组元素进行逆向存储。
* 程序输出:
* 问题分析:略
* 算法设计:略
*/
#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
void input(int *,int);//函数声明
void output(int *,int);
void max(int *,int);
void select(int *,int);
void bubble(int *,int);
void save(int *,int);

const int n=10;

int a
;

int *p;

p=a;//或者是p=&a[0];

input(p,n);//函数调用
output(p,n);
max(p,n);
select(p,n);
bubble(p,n);
save(p,n);

cout<<endl;

return 0;
}

//输入数组元素函数
void input(int *p,int n)
{
cout<<"请输入10个数组元素:"<<endl;

int i;

for(i=0;i<n;i++)
{
cin>>*(p+i);
}
}
//输出数组元素函数
void output(int *p,int n)
{
int i;

for(i=0;i<n;i++)
{
cout<<*(p+i)<<" ";
}

cout<<endl;
}
//求数组最大值
void max(int *p,int n)
{
int i,max;

max=*p;

for(i=0;i<n;i++)
{
if(max<*(p+i))
{
max=*(p+i);
}
}

cout<<"最大值:"<<endl

<<"max="<<max<<endl;
}
//选择法对数组元素进行从大到小排序 函数
void select(int *p,int n)
{
void output(int *p,int n);//函数声明

int i,j,k,temp;

for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(*(p+k)<*(p+j))
{
k=j;
}

temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
}

cout<<"选择从大到小:"<<endl;

output(p,n);
}
//冒泡法对数组元素从小到大排序
void bubble(int *p,int n)
{
void output(int *,int);

int i,j,temp;

for(j=1;j<n;j++)
{
for(i=0;i<n-j;i++)
{
if(*(p+i)>*(p+i+1))
{
temp=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=temp;
}
}
}

cout<<"冒泡从小到大:"<<endl;

output(p,n);
}
//对其进行逆序存储 函数
void save(int *p,int n)
{
void output(int *,int);

int i,temp;

for(i=0;i<n/2;i++)
{
temp=*(p+i);

*(p+i)=*(p+n-1-i);

*(p+n-1-i)=temp;
}

cout<<"逆序存储:"<<endl;

output(p,n);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐