_albert @ 2017-01-22 11:21:59
#include<iostream>
using namespace std;
int main()
{char a[30];
int b=0,c;
cin>>a;
if(a[0]=='-'){cout<<"-";b=1;}
for(int i=19;i>=b;i--)
{if(a[i]=='\0'){c=i-1;break;}}
for(int i=c;i>=b;i--)
{if(a[i]!='0'){c=i;break;}}
for(int i=c;i>=b;i--)cout<<a[i];
return 0;
}
在vs测试几组数据都是正确的 b是控制输出的末端
c是控制输出的起始端
不太清楚是哪里不符合评测机的要求,烦请各位帮忙看一下,谢谢啦
by _albert @ 2017-01-22 11:24:27
中间那个循环应该是i=29,但改了之后也是0分,
by KAGUYATHU @ 2017-01-22 17:30:16
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int flag=0;
int ff=0;
char ss1[20];
cin.getline(ss1,20);
if ((ss1[0]!='-')&&(ss1[strlen(ss1)-1]!='0')){
for (int i=strlen(ss1)-1;i>=0;i--){
cout<<ss1[i];
};
};
if ((ss1[0]=='-')&&(ss1[strlen(ss1)-1]!='0')){
cout<<'-';
for (int i=strlen(ss1)-1;i>=1;i--){
cout<<ss1[i];
};
};
if ((ss1[0]=='-')&&(ss1[strlen(ss1)-1]=='0')){
cout<<'-';
for (int i=strlen(ss1)-2;i>=1;i--){
if ((ss1[i]!='0')&&(ff==0)){
flag=i;ff=1;}
}
for (int i=flag;i>=1;i--)
cout<<ss1[i];
};
if ((ss1[0]!='-')&&(ss1[strlen(ss1)-1]=='0')){
for (int i=strlen(ss1)-2;i>=0;i--){
if ((ss1[i]!='0')&&(ff==0)) {
flag=i;ff=1;}
}
for (int i=flag;i>=0;i--)
cout<<ss1[i];
};
return 0;
}
水题码了这么长,丢脸了啊啊
by 向红名进击! @ 2017-02-09 20:51:45
要发发题解去