C语言问题,输入一个不大于5位的数,交换其各个位上数的位置。例如:输入12345,要求输出54321。

注:是不大于五!! 谢谢!!

#include <stdio.h>
#include <string.h>

void main()
{
int i,n,k=0;
char str[100];
gets(str);
printf("\n");
n=strlen(str);
for(i=0;i<n;i++)
if(n>5||(int)str[i]<48||(int)str[i]>57||(int)str[0]==48)
k=1;
if(k==1)
printf("输入有误!");
else
{
for(i=n-1;i>=0;i--)
printf("%c",str[i]);
}
}

运行示例:

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-02-10
#include <stdio.h>
#include <string.h>
using namespace std;
void getNum()
{

printf("请输入一个五位数");

char* str;
scanf("%s",str);

int s = strlen(str);
if (s>5)
{
printf("你输入的数字太长");
return;
}

string numStr = "";  //用字符串记录数字
while (true)
{
s--;
if (s<0)
{
break;
}
numStr += str[s];

}
printf("%s", numStr);  //可以利用atoi  转换成整形!!

}

相似回答