C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 07:42:48
C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数

C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数
C语言
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数是5421,而1200的反置数是21.请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来.要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式.
输入格式:输入只有一行,包括两个整数,中间用空格隔开.
输出格式:输出只有一行,即相应的结果.
输入输出样例
\x05输入样例:
\x05\x05435 754
输出样例:
\x05\x05199
#include
#include
#include
char posit(char str[],int n);
char del(char str[],int n);
int num(char str[],int n);
int main()
{
char str1[100] = {0},str2[100] = {0},str[100] = {0};
int len1,len2,len,num1,num2,sum,i;
scanf("%s",str1);
scanf("%s",str2);
len1 = strlen(str1);
len2 = strlen(str2); //输入,求长.
posit(str1,len1);
posit(str2,len2); //取反
num1 = num(str1,len1); // 求和
num2 = num(str2,len2);
sum = num1 + num2;
for(i = 0; ; i++) //这一步有问题了
{
str[i] = sum % 10;
sum = sum / 10;
if(sum == 0) break;
}
len = strlen(str);
posit(str,len);
del(str,len);
printf("%s",str);
system("pause");
return 0;
}
char posit(char str[],int n)
{
int i,j,t;
for (i = 0,j = (n-1); i = 0; i--)
{
num = num + ((str[i] - '0') * mul);
mul = mul * 10;
}
return num;
}
试过,应该就是标记的那一步有问题~不过自己又看不出问题是什么

C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数
恩 确实是注释的那一部分有错了
是一个小小的错
sum%10是十进制 要想对应ascii码中的那个数 需要加上‘0’或48(‘0’的ascii码)
也就是0要转换成‘0’ 1转换成‘1’.
改正:
for(i = 0; ; i++)
{
str[i] = sum % 10+'0'; //或str[i] = sum % 10+48;
sum = sum / 10;
if(sum == 0) break;
}
下面是我写的程序,供参考:
#include
#include
int inverse(int m);
int inverse_sum(int a,int b);
int main()
{
\x05int a,b,sum;
printf("请输入两个正整数,两数中间空一格:\n");
\x05scanf("%d %d",&a,&b);
printf("两者的反置数的和是:\n");
\x05sum=inverse_sum(a,b);
\x05sum=inverse(sum);
\x05printf("%d\n",sum);
return 0;
}
int inverse(int m)
{
\x05char str[6];
\x05int i,j;
\x05i=0;
\x05while(m)
\x05{
\x05\x05str[i++]=m%10+'0';
\x05\x05m/=10;
\x05}
\x05str[i]='\0';
\x05j=atoi(str);
\x05return (j);
}
int inverse_sum(int a,int b)
{
\x05int j,k;
\x05j=inverse(a);
\x05k=inverse(b);
return j+k;
}

C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245的反置数 【c语言】反置数 求和 求帮忙改程序【好的一定追加,另外求教函数中应该return到哪个参数上?】描述一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数. C语言题目,数字根一个正整数的数字根是通过计算该整数的各位的和产生的.如果一个整数的各位和是一位整数,那么这个数字就是该整数的数字根.如果该整数的各位和是两位或多位整数,那么, c语言:输入一个正整数,统计该整数中数字8的个数.如果输入的数是负数输出字符串er C语言使用unsigned把负数转换成整数是怎么计算的? C语言问题,如何实现给出一个五位一下的整数,算出该数的位数? 求大神写一个c语言程序,整数n的尾数是a,把尾数a移到最高位后所得的数为原整数n的k倍,求原整数n至少为多大? 给出一行C语言表达式,判断给定的整数是否是一个2的幂 用C语言编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数 编辑一个C语言程序,求n个整数的和(n是任意的整数). 用C语言编程:输入一个整数,输出该整数的所有素数因子.例如,输入120,输出为2、2、2、3和5. 一道有关c程的题目:设数组每个元素只存储0至9的数,把该数组的前n个整数的排列看做是一个n位的整数.设数组每个元素只存储0至9的数,把该数组的前n个整数的排列看做是一个n位的整数.请高 在C语言中如何是整数的范围变大 C语言问题,if和else语句,把句子写出来请输入一个整数“a”;.b=50,如果a>b则显示x否则显示y 该怎么写,我是新手,请写的详细些 从键盘输入一个整数,判断该数是否是一个质数的C程序怎么写 C语言高手进.从键盘输入一个整数(1~20) 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填 编写一个C语言程序实现判断任意输入的一个整数是几位数,并求每位的和. 从键盘输入一个整数,判断能否被三或者被五整除,如果能,输出“该整数是3或5的倍数”用JAVA语言写