独一无二的S @ 2016-08-08 17:54:34
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{int s,j=0;
int a[10];
memset(a,0,sizeof(a));
cin>>s;
int flag=0;
if(s>=0)
s=s;
if(s<0)
{flag=1;
s=abs(s);
}
for(int i=0;i<=10;i++)
{a[i]=s%10;
s=s/10;
j++;
if(s==0)
break;
}
if(flag==0)
for(int i=0;i<=j-1;i++)
if(a[i]!=0)
cout<<a[i];
if(flag==1)
{cout<<"-";
for(int i=0;i<=j-1;i++)
if(a[i]!=0)
cout<<a[i];
}
return 0;
}
哪位大神帮忙看看哪里出错了,为什么有三个点过不了?
by 独一无二的S @ 2016-08-09 18:39:35
p1307
by 觞羰涙 @ 2016-08-13 16:11:26
我也70
by leaves_ @ 2016-08-14 19:24:35
这里我比较建议你们使用字符数组和strlen算法
多引用<algorithm>。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
char a[12];
int b,d=0;
scanf("%s",a);
b=strlen(a);
if(a[0]=='-')
{
printf("-");d++;
}
int c=b;
while(a[b-1]=='0')
b--;
for(int i=b-1;i>=d;i--)
printf("%c",a[i]);
return 0;
}