问题标题: 酷町堂:2845 函数实现选择排序

0
0
已解决
张天璨
张天璨
新手天翼
新手天翼

错代码:

#include<iostream>
using namespace std;
int a[25000000],n,x;
int xp()
{
	for(int i=1;i<x;i++)
	{
		for(int j=1+i;j<=x;j++)
		{
			if(a[i]<a[j])
			{
				swap(a[i],a[j]);
			}
		}
	}
	for(int i=1;i<=x;i++)
    {
    	cout<<a[i]<<" "; 
    }
} 
int main(){
	cin>>n;
    for(int i=1;i<=n;i++)
    {
		cin>>x;
        for(int j=1;j<=x;j++)
        {
            cin>>a[i];
        }
        cout<<xp()<<endl;
    }
    return 0;
}

 

张天璨在2020-03-13 08:11:57追加了内容

请 @宣海宁  不要回答!!!

Please @ Xuanhaining don't answer! ! !

@宣海寧は答えないでください! えっ! えっ!

제발 @ xuanhaining 대답하지 마세요! ! !

 

张天璨在2020-03-16 08:32:26追加了内容

@龙舟 !!

20分!

@张岳恒 !!

20分!

❌代码:

#include<iostream>
using namespace std;
long long t,x,b,a[25000000];
void s(long long x,long long a[])
{
	for(int i=1;i<x;i++)
    {
        for(int j=i+1;j<=x;j++)
        {
            if(a[i]<a[j])
            {
                b=a[i];
                a[i]=a[j];
                a[j]=b;
            }
        } 
	}
	for(int i=1;i<=x;i++)
    {
        cout<<a[i]<<" ";
	}
}
int main(){
    cin>>t>>x;
    for(int i=1;i<=x;i++)
    {
        cin>>a[i];
	}
	s(x,a);
    return 0;
}

你们搞什么!

张天璨在2020-03-16 08:42:56追加了内容

改了一下!

还是20分!

❌代码:

@龙舟!

#include<iostream>
using namespace std;
long long t,x,b,a[25000000];
void s(long long x,long long a[])
{
	for(int i=1;i<x;i++)
    {
        for(int j=i+1;j<=x;j++)
        {
            if(a[i]<a[j])
            {
                b=a[i];
                a[i]=a[j];
                a[j]=b;
            }
        } 
	}
	for(int i=1;i<=x;i++)
    {
        cout<<a[i]<<" ";
	}
}
int main(){
    cin>>t;
    for(int j=1;j<=t;j++)
    {
		cin>>x;
		for(int i=1;i<=x;i++)
    	{
      		cin>>a[i];
		}
	}    
	s(x,a);
    return 0;
}

 

张天璨在2020-03-17 08:55:03追加了内容

@龙舟@江齐悦 

帮我看一下!!

201903-J1-滨湖2班的同学们!!

帮我看一下!!

张天璨在2020-03-17 09:23:13追加了内容

回答一下这个:2466


0
已采纳
江齐悦
江齐悦
高级光能
高级光能

首先定义void有参函数:(一定要在函数前定义好a数组)

void xuanpai(int a[],int k){

for(int i=1;i<=k;i++)//选择排序的过程{

for(int j=i+1;j<=k;j++)

if(a[i]<a[j]) swap(a[i],a[j]);

}

for(int i=1;i<=k;i++) cout<<a[i]<<" ";//返回

}

主函数里很简单

核心:

for(int i=1;i<=n;i++){

for(int j=1;j<=k;j++)//双重循环输入{

cin>>a[j];

}

xuanpai(a,k);//调用函数,a后面不要加[]。

cout<<endl;//输出换行,不能忘

if(i!=n) cin>>k;//判断输入,因为怕最后一个数据输完还要输入k,所以呀做了判断

}

主函数的n和k(k是样例输入的第2行的第一个数,至于是什么自己看输入描述),就不用说了,自己cin

望采纳,谢谢🙏

0
龙舟
龙舟
高级光能
高级光能

你的错误:

这是老师让我们写的函数

void s(long long x,long long a[])

你的main函数输出直接用

s(x,a);

你的全局变量数组应该是

long long t,x,a[100001];    

应该就ac

0
0
张岳恒
张岳恒
资深光能
资深光能

你为啥用整形函数没有返回值?

用无返回值的函数调用xp函数

主函数再来回车

还有输入时有问题,应是a[j]

ps:你就不能把xp函数里搞俩参数吗

张岳恒在2020-03-17 12:04:39追加了内容

我无语了,你不会和我有啥关系?我说的已经非常清楚了,你没换行!!!!!!

我要回答