问题遇到的现象和发生背景
一个数字反转题,不知道哪出了错误。
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <string.h>
int newdata[22];
void zheng(char* data)
{
int k;
k=strlen(data)-1;
while(data[k]=='0'&&k!=0)
{
k--;
}
for(int i=k;i>=0;i--)
printf("%c",data[i]);
}
void bai(char* data)
{
int k;
k=strlen(data)-2;
while(data[k]=='0'&&k!=0)
{
k--;
}
for(int i=k;i>=0;i--)
printf("%c",data[i]);
printf("%%");
}
void chu(char* data ,int c)
{
int a=c-1,b=c+1,k=0;
while(data[a]=='0'&&a!=0)
a--;
while(data[b]=='0'&&b!=strlen(data)-1)
b++;
for(int i=a;i>=0;i--)
{
newdata[k++]=data[i];
newdata[k++]='/';
}
for(int i=strlen(data)-1;i>=b;i--)
{
newdata[k++]=data[i];
}
for(int i = 0; i < strlen(newdata); i ++)
printf("%c",newdata[i]);
}
void dian(char* data ,int c)
{
int a=c-1,b=c+1,k=0;
while(data[a]=='0'&&a!=0)
a--;
while(data[b]=='0'&&b!=strlen(data)-1)
b++;
for(int i=a;i>=0;i--)
{
newdata[k++]=data[i];
newdata[k++]='.';
}
for(int i=strlen(data)-1;i>=b;i--)
{
newdata[k++]=data[i];
}
for(int i=0;i<strlen(newdata);i++)
printf("%c",newdata[i]);
}
int main ()
{
char data[22];
gets(data);
if(data[strlen(data)-1=='%'])
bai(data);
for(int i=0;i<strlen(data);i++)
{
if(data[i]=='/')
chu(data,i);
if(data[i]=='.')
dian(data,i);
else
zheng(data);
}
return 0;
}