NYOJ 555 相反输出

相反输出

时间限制: 1000 ms | 内存限制: 65535 KB
难度: 1
描述
编写一个程序,将n个整数按相反顺序输出。
输入
有多组测试数据,以EOF结束。
每组测试数据有n个整数。
输出
每组数据输出一行,数字间用一个空格隔开。
样例输入
1 2 3 4 5 6 7 8 9 10
样例输出
10 9 8 7 6 5 4 3 2 1

WA(全都是一位数可以相反输出,格式不太对。多位数不可以)

#include<iostream> 

#include<stdio.h>
#include<cstring> 
using namespace std;
int main()  
{
char ch,a[10000];
int i=0;
while((ch=getchar())!='\n')
{
a[i]=ch;
i++;
}
int flag=0;
for(i;i>=0;i--)
{
if(flag)
cout<<" ";
   cout<<a[i];
   flag++;
}
return 0;  


AC:

#include<stdio.h>  

#include<string.h>  
char a[10000];  
int b[1000];  
int main()  
{   
    while(gets(a))  
    {  
        memset(b,0,sizeof(b));  
        int len,k=0,i;  
        len=strlen(a);
        for(i=0;i<len;++i)  
        {  
            if(a[i]!=' ')  
            b[k]=b[k]*10+a[i]-'0';  //解决了多位数的问题
            else  
            k++;  
        }  
        printf("%d",b[k]);  
        for(i=k-1;i>=0;--i)  
          printf(" %d",b[i]);  
        printf("\n");  
    }  
    return 0;  

}  

AC

#include<stdio.h>  
#include<string.h>  

char a[10000];  

//int b[1000]; 

int b[1000]={0};  
int main()  
{   
    while(gets(a))  
    {  
        //memset(b,0,sizeof(b));  
        int len,k=0,i;  
        len=strlen(a);
        for(i=0;i<len;++i)  
        {  
            if(a[i]!=' ')  
            b[k]=b[k]*10+a[i]-'0';  
            else  
            k++;  
        }  
        printf("%d",b[k]);  
        for(i=k-1;i>=0;--i)  
          printf(" %d",b[i]);  
        printf("\n");  
    }  
    return 0;  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值