1203081549 发表于 2023-3-9 16:22:16

用函数实现回文数

int hw(int x)
   {
         int g,s,b;
         if(x<10)
         return 1;
         else if(x>=10&&x<=99)
         {
             g=x%10;
             s=x/10%10;
             if(g==s)
             return 1;
         }
         else
         {
             g=x%10;
             s=x/10%10;
             b=x/100%10;
             if(g==b)
             return 1;
         }
         
   }
   void main()
   {
         int i,sum=0,b;
         for(i=1;i<=999;i++)
         {
             b=hw(i);
             if(b==1)
             {
               sum++;
               printf("%d\n",i);
             }
         }
         printf("%d",sum);
   }
为什么我这个程序会错误的判断一些数,比如会把12 13 14.....也加上

dolly_yos2 发表于 2023-3-9 16:36:06

编译器有没有警告?有的话把所有警告解决之后再来问,没有的话该换一个了

1203081549 发表于 2023-3-9 16:46:35

dolly_yos2 发表于 2023-3-9 16:36
编译器有没有警告?有的话把所有警告解决之后再来问,没有的话该换一个了

完全没报错,但就是会多统计一些数据,不知道原因在哪

basketmn 发表于 2023-3-9 17:15:06

#include<stdio.h>
int hw(int x)
   {
         int g,s,b;
         if(x<10)
         return 0;
         else if(x>=10&&x<=99)
         {
             g=x%10;
             s=x/10%10;
             if(g==s)
             return 1;
             else return 0;
         }
         else
         {
             g=x%10;
             s=x/10%10;
             b=x/100%10;
             if(g==b)
             return 1;
             else return 0;
         }
         
   }
   int main()
   {
         int i,sum=0,b;
         for(i=1;i<=999;i++)
         {
             b=hw(i);
             if(b==1)
             {
               sum++;
               printf("%d\n",i);
             }
         }
         printf("%d",sum);
   }
页: [1]
查看完整版本: 用函数实现回文数