免费注册 查看新帖 |

Chinaunix

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

c程序的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-06-17 16:55 |只看该作者

c程序的问题

建议楼主和悟人子弟先从基础练起,一口吃一个胖子的浮躁心里来学习是最要不得的。
我将楼主的程序做了修改,为了照顾原来的代码形式及算法,改后的程序虽不是很好,但在VC6.0下无任何错误。希望对二位新手有所帮助!
  1. /***************************************************
  2. *file name    : experiment.c
  3. *description : 简单分离运算符和其他数据
  4. *note           :
  5. *author        : kernelxu
  6. *date           : 2005/06/16
  7. ****************************************************/
  8. #include<stdio.h>;
  9. #include<string.h>;
  10. #include<malloc.h>;
  11. #define STRING {'(',')','*','/','+','-'}

  12. /****************************************************
  13. *function name :        main()
  14. *params            :        none
  15. *return              :        int
  16. *note                 :
  17. ****************************************************/
  18. int main(void)
  19. {
  20.         char *p_expression = (char *)malloc(81 * sizeof(char));
  21.         char *p_s        = (char *)malloc(81 * sizeof(char));
  22.         char *p_num   = (char  *)malloc(81 * sizeof(char));
  23.        /*当然在使用动态分配的存储空间之前最好先检查一下分配是否成功*/
  24.         char sign[6]     = STRING;
  25.         unsigned int flag = 0;
  26.         unsigned int  i = 0;
  27.         unsigned int  j = 0;
  28.         unsigned int m = 0;
  29.                 char *expression = p_expression;
  30.         char *s          = p_s;
  31.         char *num     = p_num;

  32.         fflush(stdin);
  33.         printf("please enter:\n");
  34.         gets(expression);
  35.        
  36.         for( i=0; i < strlen(expression); i++)
  37.         {   
  38.                 flag = 0;
  39.                 for( j=0; j < 6; j++)
  40.                 {
  41.                         if(*(expression+i) == sign[j])
  42.                         {
  43.                                 *s++ = *(expression + i);
  44.                                 flag = 1;
  45.                         }
  46.                 }
  47.                 if(flag == 0)
  48.                 {
  49.                         *num++ = *(expression + i);
  50.                 }
  51.         }

  52.         *s      = '\0';
  53.         *num = '\0';
  54.         printf("The operator are:\n");   
  55.         for( m=0; m<strlen(p_s); m++)
  56.         printf("%c \n",*(p_s+m));
  57.          
  58.         printf("The datas are:\n");
  59.         for( m=0; m<strlen(p_num); m++)
  60.         printf("%c \n",*(p_num+m));

  61.                 free(p_expression);
  62.         free(p_s);
  63.         free(p_num);

  64.         expression = NULL;
  65.         s        = NULL;
  66.         num   = NULL;
  67.                 p_expression = NULL;
  68.         p_s        = NULL;
  69.         p_num   = NULL;

  70.         return 0;
  71. } /*END OF main()*/
复制代码
woxinfeixiang 该用户已被删除
12 [报告]
发表于 2005-06-17 17:39 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP