这个题该怎么写?
编一程序从键盘里输入一个正整数,要求输出经过逆序转换后的正整数.例如输入整数3276,输出则为6723....
编一程序从键盘里输入一个正整数,要求输出经过逆序转换后的正整数.例如输入整数3276,输出则为6723.
展开
11个回答
展开全部
gufengboy 的方法是简单的,但他处理不了进来的字符的错误,人家题目要求的正整数。
实现办法有很多..很简单的题.
建议这么典型的问题用栈来解决.因为栈的最大的特点就体现在先进后出.
先入栈再出栈就可以了.顺序就反了.
详细的程序清单可以找本数据结构.里面都有的
回答者:手链魔咒 - 助理 二级 7-30 22:08
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
string str1;
cin>>str;
for(int i=str.size()-1; i>=0; i--)
{
str1+=str[i];
}
cout<<str1;
}
参考资料:http://zhidao.baidu.com/question/17875729.html
回答者:狂风掠影 - 助理 二级 7-30 22:13
#include <stdio.h>
int b(int a) //转换函数
{ while (!(a%10)) a=a/10;//将反转后开头的0删除,如果不需要删除无意义的0,请去掉这行语句。
while (a)
{
printf("%d",a%10);
a=a/10;
}
}
void main()
{
b(3211010); //对函数进行测试
}
回答者: WXD11011 - 副总裁 十级 7-30 22:15
简单啊。用c语言
#include<stdio.h>
#include<string.h>
main()
{
char c[1000];
int n,i;
scanf("%s",c);
n=strlen(c);
for (i=n-1;i>=0;i--)
{
printf("%c",c[i]);
}
getch();
}
这是用c语言写的,用的是数组。简单明了。
回答者:nimitz_007 - 童生 一级 7-30 23:06
用了字符串数组+函数来实现,这样就能实现任何字符+字母+空格等情况下就行反序排列了。
#include <iostream>
void str(char b[])
{
int i,j,tmp;
j=1;
for (i=0;i<(strlen(b)-1)/2;i++)
{
tmp=b[i];
b[i]=b[strlen(b)-j];
b[strlen(b)-j]=tmp;
j++;
}
}
void main()
{
char a[256];
gets(a);
str(a);
printf("%s\n",a);
}
回答者:bbb_orz - 助理 二级 7-30 23:09
最简单的:
#include<stdio.h>
void main()
{
char num[20];
int i=0;
printf("请输入一串数字:\n");
do
{
num[i]=getchar();
if(isdigit(num[i]))//如果输入的是数字,则处理,否则跳过
i++;
}while(num[i-1]!='\n');
for(i--;i>=0;i--) //反向输出
printf("%c",num[i]);
putchar('\n');
}
实现办法有很多..很简单的题.
建议这么典型的问题用栈来解决.因为栈的最大的特点就体现在先进后出.
先入栈再出栈就可以了.顺序就反了.
详细的程序清单可以找本数据结构.里面都有的
回答者:手链魔咒 - 助理 二级 7-30 22:08
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
string str1;
cin>>str;
for(int i=str.size()-1; i>=0; i--)
{
str1+=str[i];
}
cout<<str1;
}
参考资料:http://zhidao.baidu.com/question/17875729.html
回答者:狂风掠影 - 助理 二级 7-30 22:13
#include <stdio.h>
int b(int a) //转换函数
{ while (!(a%10)) a=a/10;//将反转后开头的0删除,如果不需要删除无意义的0,请去掉这行语句。
while (a)
{
printf("%d",a%10);
a=a/10;
}
}
void main()
{
b(3211010); //对函数进行测试
}
回答者: WXD11011 - 副总裁 十级 7-30 22:15
简单啊。用c语言
#include<stdio.h>
#include<string.h>
main()
{
char c[1000];
int n,i;
scanf("%s",c);
n=strlen(c);
for (i=n-1;i>=0;i--)
{
printf("%c",c[i]);
}
getch();
}
这是用c语言写的,用的是数组。简单明了。
回答者:nimitz_007 - 童生 一级 7-30 23:06
用了字符串数组+函数来实现,这样就能实现任何字符+字母+空格等情况下就行反序排列了。
#include <iostream>
void str(char b[])
{
int i,j,tmp;
j=1;
for (i=0;i<(strlen(b)-1)/2;i++)
{
tmp=b[i];
b[i]=b[strlen(b)-j];
b[strlen(b)-j]=tmp;
j++;
}
}
void main()
{
char a[256];
gets(a);
str(a);
printf("%s\n",a);
}
回答者:bbb_orz - 助理 二级 7-30 23:09
最简单的:
#include<stdio.h>
void main()
{
char num[20];
int i=0;
printf("请输入一串数字:\n");
do
{
num[i]=getchar();
if(isdigit(num[i]))//如果输入的是数字,则处理,否则跳过
i++;
}while(num[i-1]!='\n');
for(i--;i>=0;i--) //反向输出
printf("%c",num[i]);
putchar('\n');
}
参考资料: 参与gufengboy的答案
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是输入一个整数,才符合题意
我做的:
#include <stdio.h>
main(){
int i,temp,b,n=0,sf=10,j,a[10],flag=1;;
printf("请输入一个正整数:");
scanf("%d",&b);
temp=b;
//循环得到整数的位数
while((temp=temp/10)>0)
n++;
n=n+1;
//进行转换
for(i=0;i<n;i++){
sf=10;
//根据规律
for(j=0;j<i;j++){
sf=sf*10;
}
temp=b%sf;
//当这位不是第一位也不是最高位时
if(i!=0&&b/sf!=0)
temp=temp/(sf/10);
//当这位是最高位时,得到最高位
if(b/sf==0)
temp=b/(sf/10);
//将数字赋给数组,n-i-1是为了实现逆转
a[n-i-1]=temp;
//判断是不是正整数
if(temp<'0'||temp>'9'){
printf("不是正整数\n");
flag=0;
break;
}
}
//打印
if(flag==1)
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
}
我做的:
#include <stdio.h>
main(){
int i,temp,b,n=0,sf=10,j,a[10],flag=1;;
printf("请输入一个正整数:");
scanf("%d",&b);
temp=b;
//循环得到整数的位数
while((temp=temp/10)>0)
n++;
n=n+1;
//进行转换
for(i=0;i<n;i++){
sf=10;
//根据规律
for(j=0;j<i;j++){
sf=sf*10;
}
temp=b%sf;
//当这位不是第一位也不是最高位时
if(i!=0&&b/sf!=0)
temp=temp/(sf/10);
//当这位是最高位时,得到最高位
if(b/sf==0)
temp=b/(sf/10);
//将数字赋给数组,n-i-1是为了实现逆转
a[n-i-1]=temp;
//判断是不是正整数
if(temp<'0'||temp>'9'){
printf("不是正整数\n");
flag=0;
break;
}
}
//打印
if(flag==1)
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单啊。用c语言
#include<stdio.h>
#include<string.h>
main()
{
char c[1000];
int n,i;
scanf("%s",c);
n=strlen(c);
for (i=n-1;i>=0;i--)
{
printf("%c",c[i]);
}
getch();
}
这是用c语言写的,用的是数组。简单明了。
#include<stdio.h>
#include<string.h>
main()
{
char c[1000];
int n,i;
scanf("%s",c);
n=strlen(c);
for (i=n-1;i>=0;i--)
{
printf("%c",c[i]);
}
getch();
}
这是用c语言写的,用的是数组。简单明了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现办法有很多..很简单的题.
建议这么典型的问题用栈来解决.因为栈的最大的特点就体现在先进后出.
先入栈再出栈就可以了.顺序就反了.
详细的程序清单可以找本数据结构.里面都有的
建议这么典型的问题用栈来解决.因为栈的最大的特点就体现在先进后出.
先入栈再出栈就可以了.顺序就反了.
详细的程序清单可以找本数据结构.里面都有的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用了字符串数组+函数来实现,这样就能实现任何字符+字母+空格等情况下就行反序排列了。
#include <iostream>
void str(char b[])
{
int i,j,tmp;
j=1;
for (i=0;i<(strlen(b)-1)/2;i++)
{
tmp=b[i];
b[i]=b[strlen(b)-j];
b[strlen(b)-j]=tmp;
j++;
}
}
void main()
{
char a[256];
gets(a);
str(a);
printf("%s\n",a);
}
#include <iostream>
void str(char b[])
{
int i,j,tmp;
j=1;
for (i=0;i<(strlen(b)-1)/2;i++)
{
tmp=b[i];
b[i]=b[strlen(b)-j];
b[strlen(b)-j]=tmp;
j++;
}
}
void main()
{
char a[256];
gets(a);
str(a);
printf("%s\n",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询