编写C++程序,其功能是找出在一个整形数组A(数组A不少于8个元素)中第二小的数及所在的位置在屏幕上输出。同时将此整形数组A,找出的第二小的数以及位置输出写入文本文件。例如:输入一个整形数组,34,78,13,4,103,67,308,56,第二小的数,13,位置,3。
代码如下,如有帮助,请采纳一下,谢谢。
#include <iostream>
#include <fstream>
using namespace std;
#define N 20
int main()
{
int A[N],i,n;
int min,sec,index;
cout << "请输入元素的个数";
cin >> n;
cout << "请输入数组元素:";
for (i = 0;i<n;i++)
cin >> A[i];
min = A[0];
for (i =1;i<n;i++)
{
if(min > A[i])
min = A[i];
}
//找第二小的数
sec = A[0];
index = 0;
for (i = 1;i < n;i++)
{
if( (sec > A[i]) && (A[i] > min) )
{
sec = A[i];
index = i;
//cout << "sec=" <<sec << ",index =" << index<< endl;
}
}
cout << "第二小的数:" << sec << ",位置:" << index+1 <<endl;
ofstream oo("out.txt");
if (!oo.is_open())
{
cout << "文件打开失败" << endl;
return 0;
}
oo << sec << " " << index+1 ;
oo.close();
return 0;
}
保留原始数据,排序算法排序,取第二小的数,找出该数在原始数据中的位置
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632