程序代码如下(选自《易学C++》P83第4题(数组那一章)
#include "iostream.h"
int squeeze(int a[],int size,int num);
int main()
{
int temp;
int number[]={3,16,18,2,4,19,5,15};
const int size=sizeof(number)/sizeof(int); //求得数组大小
for (int i=0;i<3;i++)
{
cout <<"请输入一个数" <<endl;
cin >>temp;
cout <<"被挤出来的是" <<squeeze(number,size,temp) <<endl;
}
return 0;
}
int squeeze(int a[],int size,int num)
{
int min=num,temp,mini; //假设目前已知最小的数就是num
cout <<"原来的数组为" <<endl;
for (int i=0;i<size;i++)
{
cout <<' ' <<a[i];
if (a[i]<min) //数组中的数是否比目前已知最小数更小
{
min=a[i];
mini=i; //记录最小数组元素的下标
}
}
cout <<endl;
if (min!=num) //最小数是数组中的元素
{
temp=a[mini];
a[mini]=num;
return temp; //返回被挤出的数组元素
}
else
{
return num;
}
}
运行结果:
请输入一个数
17
原来的数组为
3 16 18 2 4 19 5 15
被挤出来的是2
请输入一个数
1
原来的数组为
3 16 18 17 4 19 5 15
被挤出来的是1
请输入一个数
8
原来的数组为
3 16 18 17 4 19 5 15
被挤出来的是3
如上述程序运行结果,为什么“被挤出来的是”会出现在“原来的数组为。。。。。。。”后面,它明明在squeeze函数前面啊?
请高手赐教,万分感激
本文解析了一个C++程序,该程序实现了一种数组挤压算法,通过用户输入的数值来替换数组中的最小值,并返回被替换的原最小值。文章详细展示了程序的运行流程和结果。

被折叠的 条评论
为什么被折叠?



