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;  

猜你喜欢

转载自blog.csdn.net/tingtingyuan/article/details/80150116
555
今日推荐