LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 682|回复: 6

大家一起来做题!~~

[复制链接]
发表于 2007-1-31 17:02:56 | 显示全部楼层 |阅读模式
输入8个正整数,输出其中所有的对称数,并求对称数的个数,所谓对称数,指的是将该数的各位数反过来以后与原来的数一样!~~

大家帮忙啦!~~
发表于 2007-1-31 20:11:38 | 显示全部楼层
是指121,33这类的数?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-31 21:10:59 | 显示全部楼层
嗯,是的,就是这样的数,不过我不太会求!~~
回复 支持 反对

使用道具 举报

发表于 2007-2-1 10:38:15 | 显示全部楼层
我写了个函数求对称数:
  1. int mirror (int var)
  2. {
  3.     int r = 0;
  4.     int n = 0;
  5.     int m;
  6.     do{
  7.         m = var / 10;
  8.         n = var - m * 10;
  9.         r = r * 10 + n;
  10.         var = m;
  11.     } while (var  > 0);
  12.     return r;
  13. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-2-1 12:01:28 | 显示全部楼层
Post by biinn
我写了个函数求对称数:
......

考虑不周,这个函数不能转换负数。
可以加一个标志,然后按正数转换,返回时变成负数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-1 16:08:14 | 显示全部楼层
先谢谢楼上两位,biinn你好,那个函数返回值是可以,但是我没有学到函数那里,马上要到数组了,老师出的题应该不是那样解的!~有更简单的方法么?
回复 支持 反对

使用道具 举报

发表于 2007-2-2 00:48:24 | 显示全部楼层
  1. #include <stdio.h>
  2. #define MAX_Num 8

  3. int main()
  4. {
  5.     int var[MAX_Num];
  6.     int varV;
  7.     int r=0;
  8.     int n=0;
  9.     int m;
  10.     int i;
  11.     int total=0;

  12.     for(i=0;i<MAX_Num;i++)
  13.     {
  14.     printf("\nplesae press in var[%d]=",i);
  15.     scanf("%d",&var[i]);
  16.     }

  17.     printf("\n");


  18.     for(i=0;i<MAX_Num;i++)

  19.     {

  20.       varV=var[i];

  21.      do{
  22.         m = varV / 10;
  23.         n = varV - m * 10;
  24.         r = r * 10 + n;
  25.         varV = m;
  26.       } while (varV  > 0);

  27.      if(r==var[i])
  28.       {
  29.        printf("\tvar[%d]=%d is a mirror number!!\n",i,var[i]);
  30.        total++;
  31.       }

  32.       r=0;
  33.       n=0;

  34.     }
  35.     printf("\n\t\tTotal:%d\n",total);
  36.     getch();
  37. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表