| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 271 人关注过本帖
标题:归并排序代码总会停止运行帮帮我
只看楼主 加入收藏
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:63
专家分:15
注 册:2018-3-19
结帖率:62.5%
  已结贴   问题点数:20  回复次数:3   
归并排序代码总会停止运行帮帮我
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
int a[80]= {0},r[80]= {0};
int pa(int s,int t);
int main() {
    for(int i=0; i<10; i++) {
        cin>>a[i];
    }
    pa(0,9);
    for(int i=0; i<10; i++) {
        cout<<r[i];
    }
    return 0;
}
int pa(int s,int t) {

    if(s==t) {
        return 0;
    }
    int mid=ceil((s+t)/2.0);
    pa(s,mid);
    pa(mid+1,t);
    int i=s,j=mid+1,k=s;
    while(i<=mid&&j<=t) {
        if(a[i]<=a[j]) {
            r[k]=a[i];
            k++;
            i++;
        } else {
            r[k]=a[j];
            k++;
            j++;
        }
    }
    while(i<=mid) {
        r[k]=a[i];
        k++;
        i++;
    }
    while(j<=t) {
        r[k]=a[j];
        k++;
        j++;
    }
    for(int l=s; l<=t; l++) {
        a[l]=r[l];
    }
    return 0;
}
2018-04-08 20:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:273
帖 子:6001
专家分:34312
注 册:2011-1-18
  得分:20 
这写的什么玩意儿,算了,我不多说
ceil((s+t)/2.0) 改为 (s+t)/2 试试。
2018-04-09 08:53
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:63
专家分:15
注 册:2018-3-19
  得分:0 
还是不行
2018-04-18 20:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:273
帖 子:6001
专家分:34312
注 册:2011-1-18
  得分:0 
以下是引用根根本根在2018-4-18 20:40:59的发言:

还是不行
你去医院,是不是也不肯告诉医生你哪里不舒服,而是让医生猜?
你只肯说个“不行”,别人怎么知道哪里不行?

如果编译失败,贴出编译器给出的错误信息;
如果运行结果不符合你的预期,贴出你的输入、实际输出、期望的输出。

cout<<r[i]; 我猜应该改为 cout<<a[i],当然,我不知道你的意图,只是瞎猜猜。
2018-04-19 08:42







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032199 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved