输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。


/*
 *  输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
 *  编写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
 */

#include<iostream>
using namespace std;

/*
 *  用符号常量定义数组长度(const:constant)
 *  
 *  说明:
 *      由于使用 const 语句定义符号常量带有数据类型,以便系统进行类型检查,
 *  同时该语句具有计算初值表达式和赋初值的功能,所以比宏命令(#define)定义符号常量要优越得多,
 *  因此提倡使用 const 语句。
 */
const int arrayLength=10;

void main()
{
	void inputNum(int number[],int temp_length);

	void outputNum(int number[],int temp_length);

	void swap(int number[],int temp_length);

	int number[arrayLength];

	cout<<"请输入10个整数:"<<endl;
        
	//number为数组地址
	inputNum(number,arrayLength);

	swap(number,arrayLength);

	outputNum(number,arrayLength);
}

/*
 *  输入整数
 */
void inputNum(int number[],int temp_length)
{
	int length=0;

	length=temp_length;
	
	for(int i=0;i<length;i++)
	{
		cin>>number[i];
	}
	
}

/*
 *	交换
 */
void swap(int number[],int temp_length)
{
	int *max,*min,*pointer,temp,length;

	//将数组首地址赋值给指针变量,即指针变量指向数组的第一个元素
	max=min=number;    //因为是右结合,所以这样写;一右而不右,三右赋值右

	temp=0;

	length=temp_length;

	/*
	 *  循环变量初始值:数组第2个值的地址;循环条件:数组最后一个值的地址(number+length-1);循环变量增值:地址+1
	 */
	for(pointer=number+1;pointer<number+length;pointer++)
	{
		if(*pointer>*max)
		{
			//将大数地址赋给max
			max=pointer;	
		}
		else if(*pointer<*min)
		{
			//将小数地址赋给min
			min=pointer;
		}
	}

	//将最小数与第一个数交换
	temp=number[0];
		
	//把指针变量min所指向的值赋值给number数组的第一个值;
	//'*':为指针运算符
	number[0]=*min;

	*min=temp;

	//将最大数与最后一个数交换
	temp=number[9];

	number[9]=*max;

	*max=temp;
}


/*
 *	输出整数
 */
void outputNum(int number[],int temp_length)
{
	int length=0;

	length=temp_length;

	for(int i=0;i<length;i++)
	{
		cout<<number[i]<<"\t";
	}
}

运行结果:

 

备注:指针变量所占空间大小由地址总线决定。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 [Python]-输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 C语言练习题-依次将10个数输入,要求输出其中最大的数。 给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。 作业1-5 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 【JAVA习题二十六】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 编写一个程序从键盘上输入10个数据保存到数组中,求出该10个数的最大、最小和平均值 在控制台中输入一个数组,并对这个数组进行重新排序,将第一个数和最后一个交换,将第二个和倒数第二个交换 用伪代码表示第4题中各题的算法 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换 依次将10个数输入,要求输出其中最大的数 有3个数a,b,c, 要求按大小顺序把他们输出 求1 + 2 + 3 + ... + 100 判断一个数n能否同时被3和5整除 求两个数m和n的最大公约数
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM