
两道C语言题,帮忙看一下(下)
第2题问题描述:请您写一个reverseAdd函数,该函数根据输入的两个正整数a和b,然后分别将它们的数字按照高位在右边的方式反转后求和。例如,reverseAdd(12...
第2题
问题描述:
请您写一个reverseAdd函数, 该函数根据输入的两个正整数a和b, 然后分别将它们的数字按照高位在右边的方式反转后求和。
例如,reverseAdd(123, 456) == 321 + 654 == 975
程序原型:
C/C++ int reverseAdd (int a, int b);
Java public class Exam{
public static int reverseAdd(int a, int b)
{ … }
}
输入:
输入的a,b参数均为有效取值范围[1, 70000]区间上的正整数。
输出:
通过函数返回值输出结果。
若输入的a或b参数超出了取值范围(小于1或者大于70000),则应输出-1;
否则应按照要求输出数字反转后的和。
注意:最终交付的函数代码中不要向控制台打印输出任何信息。
举例:
输入 输出 说明
123, 456 975 123反转为321 456反转为654结果为 321 + 654 = 975
0, 123 -1 输入错误,0超出了取值范围,返回-1
80000, 123 -1 输入错误,80000超出了取值范围,返回-1
100, 200 3 100和200反转后的值为1和2(前导0被忽略)
1, 2 3 单个数字反转后不变
回答的模板,请另存为.c文件,在里面做答
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
return -1; // remove this line please
// your code here...
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
} 展开
问题描述:
请您写一个reverseAdd函数, 该函数根据输入的两个正整数a和b, 然后分别将它们的数字按照高位在右边的方式反转后求和。
例如,reverseAdd(123, 456) == 321 + 654 == 975
程序原型:
C/C++ int reverseAdd (int a, int b);
Java public class Exam{
public static int reverseAdd(int a, int b)
{ … }
}
输入:
输入的a,b参数均为有效取值范围[1, 70000]区间上的正整数。
输出:
通过函数返回值输出结果。
若输入的a或b参数超出了取值范围(小于1或者大于70000),则应输出-1;
否则应按照要求输出数字反转后的和。
注意:最终交付的函数代码中不要向控制台打印输出任何信息。
举例:
输入 输出 说明
123, 456 975 123反转为321 456反转为654结果为 321 + 654 = 975
0, 123 -1 输入错误,0超出了取值范围,返回-1
80000, 123 -1 输入错误,80000超出了取值范围,返回-1
100, 200 3 100和200反转后的值为1和2(前导0被忽略)
1, 2 3 单个数字反转后不变
回答的模板,请另存为.c文件,在里面做答
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
return -1; // remove this line please
// your code here...
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
} 展开
3个回答
2010-07-03
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
// your code here...
int reversedA=0;
int reversedB=0;
if(a<1||a>70000||b<1||b>70000)
return -1;
while(a)
{
reversedA*=10;
reversedA+=a%10;
a/=10;
}
while(b)
{
reversedB*=10;
reversedB+=b%10;
b/=10;
}
return reversedB+reversedA;
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
}
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
// your code here...
int reversedA=0;
int reversedB=0;
if(a<1||a>70000||b<1||b>70000)
return -1;
while(a)
{
reversedA*=10;
reversedA+=a%10;
a/=10;
}
while(b)
{
reversedB*=10;
reversedB+=b%10;
b/=10;
}
return reversedB+reversedA;
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
}
展开全部
int Inversion (long int a)
{long int b,c;
c=b/1000+10*((b%1000)/100)+100*(((b%1000)%100)/10)+1000(((b%1000)%100)%10);
return c;
}
reverseAdd (int a, int b)
{int c,
c=Inversion(a)+ Inversion(b)}
{long int b,c;
c=b/1000+10*((b%1000)/100)+100*(((b%1000)%100)/10)+1000(((b%1000)%100)%10);
return c;
}
reverseAdd (int a, int b)
{int c,
c=Inversion(a)+ Inversion(b)}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-07-03
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
int veca[5],vecb[5],i,j,project,sum;
if(a < 1 || a > 70000 || b < 1 || b > 70000 )
{
return -1;
}
i=0;
project = 10;
while(a!= 0)
{
veca[i]= a % project;
a = a/10;
i++;
}
j=0;
while(b!= 0)
{
vecb[j]= b % project;
b = b/10;
j++;
}
sum = 0;
project = 1;
while(i>0 ||j >0)
{
i--;
j--;
if (i>=0&&j>=0)
{
sum+= (veca[i] + vecb[j])*project;
}
if (i>=0 && j<0)
{
sum+= (veca[i] + 0)*project;
}
if (i<0 && j>=0)
{
sum+= (0 + vecb[j])*project;
}
project*= 10;
}
return sum;
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
//if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
}
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
int veca[5],vecb[5],i,j,project,sum;
if(a < 1 || a > 70000 || b < 1 || b > 70000 )
{
return -1;
}
i=0;
project = 10;
while(a!= 0)
{
veca[i]= a % project;
a = a/10;
i++;
}
j=0;
while(b!= 0)
{
vecb[j]= b % project;
b = b/10;
j++;
}
sum = 0;
project = 1;
while(i>0 ||j >0)
{
i--;
j--;
if (i>=0&&j>=0)
{
sum+= (veca[i] + vecb[j])*project;
}
if (i>=0 && j<0)
{
sum+= (veca[i] + 0)*project;
}
if (i<0 && j>=0)
{
sum+= (0 + vecb[j])*project;
}
project*= 10;
}
return sum;
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
//if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询