我正在尝试提交解决方案,但我得到了错误的答案,但据我说它运行正常。还有正确的代码。
我的代码
#include<stdio.h>
int rev(int num){
int rev = 0;
while(num>=10){
rev = rev + num%10;
rev=rev*10;
num = num/10;
}
rev = rev + num;
}
int main(){
int T;
int num1,num2;
scanf("%d",&T);
while(T--){
scanf("%d",&num1);
scanf("%d",&num2);
printf("%d\n",rev(rev(num1)+rev(num2)));
}
return 0;
}
虽然接受的代码是
#include<stdio.h>
int rev(int num)
{
int temp=0;
while(num)
{
temp=(temp*10)+(num%10);
num/=10;
}
return temp;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{ int num1,num2;
scanf("%d%d",&num1,&num2);
printf("%d\n",rev(rev(num1)+rev(num2)));
}
return 0;
}
代码来自http://codegeeksblog.wordpress.com/2013/05/30/spoj-addrev/
我找不到我的代码不被接受的原因!我从法官那里得到错误的回答信息。
答案 0 :(得分:1)
你应该返回这个数字,使整个函数按msandiford
暗示的方式工作。
在最后一步中继续这样做......
int rev(int num){
int rev = 0;
while(num>=10){
rev = rev + num%10;
rev=rev*10;
num = num/10;
}
rev = rev + num;
return rev; // added a return statement.
}