这个程序在tc中可以运行,而且正确,为什么在vc6.0中总是有错,该如何解决
这个程序在tc中可以运行,而且正确,为什么在vc6.0中总是有错
#include <stdio.h>
#define max 217483647
long int s;
long int a;
long re(long int a)
{
long int t;
for(t=0;a> 0;a/=10)
t=t*10+a%10;
return(t);
}
long nonre(long int s)
{
if(re(s)==s)return(1);
else return(0);
}
void main()
{
long int n,m,re();
int count=0;
printf( "enter the number: ");
scanf( "%ld ",&n);
while(!nonre(re(n)+n))
{
if(m+n> max){printf( "shao shu fan wei ");
break;
}
else{
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
n+=m;
}
}
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
printf( "here is the end\n ");
}
这个是一个数和它的倒序数相加,如果结果是回文数则返回,否则继续
------解决方案--------------------
//你上面的程序, 即使在TC也不可能正常运行, 因为有逻辑错误!
// 下面是给你修改好的程序.
#include <stdio.h>
#define max 217483647
long re(long int a)
{
long int t;
for(t=0;a> 0;a/=10)
t=t*10+a%10;
return(t);
}
long nonre(long int s)
{
if(re(s)==s)return(1);
else return(0);
}
void main()
{
long int n,m;
m = 0;
int count=0;
printf( "enter the number: ");
scanf( "%ld ",&n);
m = re(n);
while(!nonre(m+n))
{
if(m+n> max){
printf( "shao shu fan wei ");
break;
}
else{
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
n+=m;
}
m = re(n);
}
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
printf( "here is the end\n ");
}
------解决方案--------------------
OK, 可以揭帖 ...
------解决方案--------------------
别的进制同理,把10改称别的数字就可以了。。。
------解决方案--------------------
揭贴吧,楼主哦,偶发现浪费几分钟在这个帖子上,发现已经被人回答完了,OVER了,哎!!!\
现在又要来回个帖子,请求楼主大人你揭贴,消耗了点能量,看来,食堂里明天又可以多赚一点饭钱了.
#include <stdio.h>
#define max 217483647
long int s;
long int a;
long re(long int a)
{
long int t;
for(t=0;a> 0;a/=10)
t=t*10+a%10;
return(t);
}
long nonre(long int s)
{
if(re(s)==s)return(1);
else return(0);
}
void main()
{
long int n,m,re();
int count=0;
printf( "enter the number: ");
scanf( "%ld ",&n);
while(!nonre(re(n)+n))
{
if(m+n> max){printf( "shao shu fan wei ");
break;
}
else{
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
n+=m;
}
}
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
printf( "here is the end\n ");
}
这个是一个数和它的倒序数相加,如果结果是回文数则返回,否则继续
------解决方案--------------------
//你上面的程序, 即使在TC也不可能正常运行, 因为有逻辑错误!
// 下面是给你修改好的程序.
#include <stdio.h>
#define max 217483647
long re(long int a)
{
long int t;
for(t=0;a> 0;a/=10)
t=t*10+a%10;
return(t);
}
long nonre(long int s)
{
if(re(s)==s)return(1);
else return(0);
}
void main()
{
long int n,m;
m = 0;
int count=0;
printf( "enter the number: ");
scanf( "%ld ",&n);
m = re(n);
while(!nonre(m+n))
{
if(m+n> max){
printf( "shao shu fan wei ");
break;
}
else{
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
n+=m;
}
m = re(n);
}
printf( "[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
printf( "here is the end\n ");
}
------解决方案--------------------
OK, 可以揭帖 ...
------解决方案--------------------
别的进制同理,把10改称别的数字就可以了。。。
------解决方案--------------------
揭贴吧,楼主哦,偶发现浪费几分钟在这个帖子上,发现已经被人回答完了,OVER了,哎!!!\
现在又要来回个帖子,请求楼主大人你揭贴,消耗了点能量,看来,食堂里明天又可以多赚一点饭钱了.