C语言 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 21:03:21
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;
}
试过,应该就是标记的那一步有问题~不过自己又看不出问题是什么
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以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;
}
试过,应该就是标记的那一步有问题~不过自己又看不出问题是什么
恩 确实是注释的那一部分有错了
是一个小小的错
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;
}
是一个小小的错
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结尾,那
C语言题目,数字根一个正整数的数字根是通过计算该整数的各位的和产生的.如果一个整数的各位和是一位整数,那么这个数字就是该
编写一个程序,从键盘上输入一个整数,用英文显示该整数的每一位数字.
一个整数的个位右边写一个3就得到比原整数多一位的新整数.若新整数正好是原整数的首位加3所得整数的3倍,则原整数最小是多少
c语言 修改下列程序,使之实现输入10-9999范围内的一个整数,以该整数各位数字相反的顺序输出.
一个三位整数是另一个三位整数的9倍,这样的三位整数有哪些
C语言输入一个整数 并把这个整数各位数字由大到小重新排列组成的整数输出
C语言:从键盘上输入一个整数,计算整数的各位数字之和
用C语言编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数
如果一个整数的个位数字是 2,那么这个整数能被2整除
c语言拼数字问题多组数据每组数据为一行字符串,输入一个空行时结束.对每行求出所得整数的最大因子,若没有整数或为0即输出0
任何一个整数的平方的末尾数字不可能的是?