大一C++课程中编写程序的问题。

编写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