问题标题: 酷町堂:哪里错了,1167 植树积分(points),求整段代码(づ ̄3 ̄)づ╭❤~

0
0
已解决
黄硕
黄硕
高级守护
高级守护
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[100000];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    int f=-1,h=0;
    if(f<=a[i])
    {
        h=f;
        f=a[i];
        a[i]=h;
        cout<<a[i];
    }
    return 0;
}

 


0
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼
if(f<=a[i])

a[i]不存在,所以要加循环!

你的思路也有点问题: 

你们能帮助卡卡西,找出植树积分最多的前三位小朋友和植树积分最少的后三位小朋友的编号吗?

所以这道题要用结构体排序!

1.结构体: 两个参数,一个是植树积分,一个是编号。

2、排序:sort结构体排序,cmp比较函数是比较他们的植树积分。

代码:

bool cmp(kid x,kid y)
{
    return x.point<y.point;
}

现在的结构体就是一个排好序的结构体。

我们现在可以得到前三名的编号和后三名的编号,但是三个编号不是升序。

3、编号排序:把前三名的结构体和后三名的结构体分别进行选择排序:

for (第一重循环)//选择排序模板
{
      for (第二重循环)
      {
          比较两个结构体编号的大小,进行交换。
      }
} 

最终分行输出前三名编号排好序的结果和后三名编号排好序的结果即可。(前三名和后三名要分行输出!)

 

此题陷阱较多,考虑要分开考虑,思路不要混乱!

100%保证!

0
0
周俊豪
周俊豪
高级光能
高级光能

emmm......

报错了,a[i]不再循环里会报错

0
我要回答