这道题目还是属于比较简单的类型,所以我还做得下去QAQ
哎哟,挺简单的qwq
用while输入字符串!
定义一个num(char),len(int)
先输入num[0],判断ASCII码是否≥32 && ≤126(处于可见字符范围内)
用while重复上一步
最后len–!!!(因为最后一个字符是回车)
好,上代码
#include //不解释
using namespace std;
int main()
{
char num[1001]; //num就是输入的数字
int len=0; //数字长度
bool no=false,temp=false; //no是从右往左数有没有出现第一个非零数,temp是有无负号
num[0]=getchar(); //这串代码上面解释
while(num[len]>=32 && num[len]<=126)
num[++len]=getchar();
len--;
if(num[0]=='-') //如果第一个符号是负号
putchar('-'),temp=true; //输出符号并将temp设定成true(真)
for(int i=len;i>=0;i--) //除去末尾的0
{
if(num[i]=='0' && no==false) //如果有零并且没遇到第一个非零数
len--; //长度-1(这样就可以不输出)
if(num[i]!='0') //一旦遇到第一个非零数
{
no=true; //可省略
break; //跳出循环
}
}
for(int i=len;i>=0;i--) //逆序输出
{
if(i!=0 || (i==0 && temp==0)) //如果i!=0或者无符号
putchar(num[i]); //输出
}
return 0;
}