免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xa_butterfly
打印 上一主题 下一主题

求解数字字符串 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-12-31 14:55 |只看该作者

求解数字字符串

我认为这道题可以提供一个统一的解法,不管是字符串型,还是整型,都是能比较大小的,在pascal语言中称为有序类型。如果用c==提供的函数重载功能,就能提供一个差不多的接口,当然如果用运算符重载就更好了。
[code]#include <stdio.h>;
#include <string.h>;


/*×帧

论坛徽章:
0
12 [报告]
发表于 2003-12-31 15:18 |只看该作者

求解数字字符串

抱歉,不会用code功能,刚才练了练,好像能用了,重发一遍试试
  1. #include <stdio.h>;
  2. #include <string.h>;


  3. /*字符串型的数字加一*/
  4. void inc(char * str)
  5. {
  6.         int i;
  7.         int max;
  8.         int jinwei=1;/*是否向高位进位*/
  9.         int value;
  10.        
  11.         max=strlen(str);
  12.         for(i=max-1; (i>;=0)&&(str[i]!=' '); i--)
  13.         {
  14.                 value=str[i]-'0';
  15.                 str[i]=(value+jinwei) % 10 +'0';
  16.                 jinwei=(value+jinwei) / 10;
  17.         }
  18. }

  19. /*整型数字加一*/
  20. void inc(int * int1)
  21. {
  22.         (*int1)++;
  23. }


  24. /*字符串型数字比较*/
  25. int cmp(char * string1, char * string2)
  26. {
  27.         return strcmp(string1, string2);
  28. }

  29. /*整型数字比较*/
  30. int cmp(int int1, int int2)
  31. {
  32.         return int1-int2;
  33. }


  34. /*字符串型数字,打印指定的首尾之间的所有值*/
  35. void print_list(char * string1, char * string2)
  36. {
  37.         char string3[1000];;
  38.        
  39.         strcpy(string3,string1);
  40.        
  41.         for(inc(string3); cmp(string3, string2)<0; inc(string3))
  42.                 printf("%s\n",string3);
  43.        
  44. }

  45. /*整型数字,打印指定的首尾之间的所有值*/
  46. void print_list(int int1, int int2)
  47. {
  48.         int int3;
  49.        
  50.         int3=int1;
  51.         for(inc(&int3); cmp(int3, int2)<0; inc(&int3))
  52.                 printf("%d\n",int3);
  53. }


  54. int main()
  55. {
  56.         print_list("00","15");
  57.         print_list(00, 15);
  58. }
复制代码

论坛徽章:
0
13 [报告]
发表于 2003-12-31 15:38 |只看该作者

求解数字字符串

问题我已解决,谢谢各位的回复

论坛徽章:
0
14 [报告]
发表于 2004-01-01 10:19 |只看该作者

求解数字字符串

楼主主要搞不清楚恐怕是printf系的输出格式问题吧,
----------------------------
int i = 9 ;

printf( "%03d\n", i) ;
----------------------------
上面输出就是:
009
----------------------------
举一要反三哦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP