若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2607: A代码填空题–更换火车头

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 2,245

题目描述

假设火车有n节车厢(从前往后编号依次为1,2,3,…,n),每节车厢的人数依次为M1,M2,M3,…,Mn。火车头的编号为0,连接在1号车厢上。火车进站后,将火车头从1号车厢卸下,接在第n节车厢上,反方向行驶。即火车的1号车厢为原来的第n号车厢,…,火车的n号车厢为原来的第1号车厢。请输出火车反向行驶后,每节车厢的人数。
c:
#include <stdio.h>

struct Train
{
    int num;
    Train *next;
};
Train *creat(int n){
    Train *t=new Train;
    scanf("%d",&t->num) ;
    if(n==1){
        t->next = NULL;
        return t;
    }
    t->next = creat(n-1);
    return t;
}
void print(Train *p){
    if(p==NULL)
        return ;
    printf("%d ",p->num);
    print(p->next);
}
void del(Train *p){
    if(p==NULL)
        return ;
    Train *t;
    t=p->next;
    delete p;
    del(t);
}
Train *rev(Train *p){
    Train *head=NULL,*t;
    while(p)    {
        t=p->next;
        p->next = head;
        head = p;
        /*******************************   

       请在该部分补充缺少的代码
********************************/
    }
    return head;
}
int main(void)
{
    int n;
    Train *head;
    Train *rev(Train *p);
    scanf("%d",&n);
    head = creat(n);
    head=rev(head);
    print (head);
    del(head);
    return 0;
}

c++:
#include <iostream>
using namespace std;
struct Train {
    int num;  //人数
    Train *next;
};
Train *creat(int n)
{
    Train *t=new Train;
    cin>>t->num ;
    if(n==1) {
        t->next = NULL;
        return t;
    }
    t->next = creat(n-1);
    return t;
}
void print(Train *p){
    if(p==NULL)
        return ;
    cout<<p->num<<" ";
    print(p->next);
}
void del(Train *p)
{
    if(p==NULL)
        return ;
    Train *t;
    t=p->next;
    delete p;
    del(t);
}
Train *rev(Train *p)
{
    Train *head=NULL,*t;
    while(p){
        t=p->next;     
        p->next = head;
        head = p;      
/*******************************  
       请在该部分补充缺少的代码
********************************/
    }
    return head;
}
int main(void)
{
    int n;
    Train *head;
    Train *rev(Train *p);
    cin>>n;
    head = creat(n);
    head=rev(head);
    print (head);
    del(head);
    return 0;
}

输入

第一行 n
第二行 每节车厢的人数

输出

火车反向行驶后,每节车厢的人数。

样例输入

10 
110 112 108 100 118 100 60 64 56 62

样例输出

62 56 64 60 100 118 100 108 112 110

参考代码

#include<stdio.h>
int main() 
{
    int a[19],n,i;
    scanf("%d",&n);
    for (i=0;i<n;i++)
        scanf("%d",&a[i]);
    for (i=n-1;i>=0;i--)
        if(i==n-1)printf("%d",a[i]); else printf(" %d",a[i]);
}

解析

暂无

hustoj

发表评论 取消回复

要发表评论,您必须先登录。


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip Dreams孤独患者 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist