相反输出
时间限制:
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 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;
}