DawnWind @ 2020-12-03 23:32:05
1答案一样啊
代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
string num;
int i;
cin>>num;
if(num[0]=='-') cout<<"-";
for(i=10;i>=0;i--){
if(num[i]==0||num[i]=='0') continue;
else break;
}
for(;i>0;i--) cout<<num[i];
if(num[0]!='-') cout<<num[0];
return 0;
}
by amlelephant @ 2020-12-04 01:08:05
您可以看看我的代码,不知道您代码中的i的意思
#include<bits/stdc++.h>
#define re(a, b, c) for (int a = b; a <= c; a ++)
#define de(a, b, c) for (int a = c; a >= b; a --)
#define wh(a) while (a --)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double d;
typedef long double ld;
inline int read()
{
register int s=0,f=0;
register char ch=getchar();
while(!isdigit(ch)) f|=(ch=='-'),ch=getchar();
while(isdigit(ch)) s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
return f?-s:s;
}
inline void write(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
string s;
int main()
{
cin >> s;
if (s[0] == '-')
{
s.erase (0, 1);
cout << '-';
}
int t = 0;
reverse (s.begin(), s.end());
while (s[t] == '0') t ++;
for (int i = t; i < s.size(); i ++)
{
cout << s[i];
}
return 0;
}
by zhouyixian @ 2020-12-04 06:14:30
数组越界了。
for(i=10;i>=0;i--)
改成
for(i=num.size()-1;i>=0;i--)
就行
by DawnWind @ 2020-12-04 12:01:29
@zhouyixian
可以了,谢谢dalao!
by DawnWind @ 2020-12-04 12:02:31
@jasonwei
i是输入数字第几位
谢谢!
by DawnWind @ 2020-12-04 23:24:07
@zhouyixian
补充问一下,数组越界对编译有什么影响吗?为什么仍然可以运行捏?
by zhouyixian @ 2020-12-05 16:11:03
数组越界对编译没有影响。编译器也不知道是否越界。
按理说越界会直接re,大概是string申请内存的时候多要了点?
(跨时空对话)
by DawnWind @ 2020-12-05 18:24:20
@zhouyixian
啊这
谢谢