c++ - 输出是垃圾值
问题描述
这是我的代码。有什么不对吗?这个项目是关于降序排序的,我确实在互联网上检查了一些示例代码,但它和我的非常相似。但是我的代码总是打印垃圾值内存。
#include <iostream>
using namespace std;
void input(int a[], int n)
{
for( int i=0;i<n;i++)
{
cin>>a[i];
}
}
void sort(int a[], int n)
{
int i; int j; int temp;
for (i=0;i<n-1;i++)
for( j=i+1;i<n;j++)
{
if(a[i]<a[j])
{
temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
int output(int a[], int n)
{
for ( int i=0;i<n;i++)
{
cout<<a[i]<<' ';
}
}
int main()
{
int n;
cin>>n;
int a[n];
input(a,n);
sort(a,n);
output(a,n);
return 0;
}
解决方案
请在排序功能中更改i<n
为j<n
您的内部 for 循环。它可能会有所帮助:)
#include <iostream>
using namespace std;
void input(int a[], int n)
{
for( int i=0;i<n;i++)
{
cin>>a[i];
}
}
void sort(int a[], int n)
{
int i; int j; int temp;
for (i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
int output(int a[], int n)
{
for ( int i=0;i<n;i++)
{
cout<<a[i]<<' ';
}
}
int main()
{
int n;
cin>>n;
int a[n];
input(a,n);
sort(a,n);
output(a,n);
return 0;
}
现在如果你想要第二个最大值,你可以从a[n-2]
.
推荐阅读
- mysql - 我怎样才能加入这两个表
- sql - 在 SQL Server 中,如何防止多线程应用程序读取同一行两次?
- javascript - 可以将事件侦听器重新添加到数据表吗?
- regex - 正则表达式命名捕获组
- typescript - 如何检查类型是否相同?
- javascript - 如何在 createguild 事件中获取公会 ID
- google-cloud-platform - Gsutil 终端命令实际上并未更新 Cloud Console 中的文件
- gekko - 如何处理 GEKKO 中的离散时间系统?
- matlab - Matlab图形问题:半散点,红色区域内的黑线
- javascript - 一个 WCF 调用而不是另一个 WCF 调用的 CORS 问题?