| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:如何将此程序各个模块改写为函数用主函数调用,求改后的代码
只看楼主 加入收藏
lp617
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2015-5-15
结帖率:80%
收藏
 问题点数:0 回复次数:1 
如何将此程序各个模块改写为函数用主函数调用,求改后的代码
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <ctype.h>

void inputstr(char *p_str);

int main()
   
{

  //从键盘获取表达式字符串

  char string[256]={0};   //存放键盘获得的表达式字符串

  int  num[256]={0};

  char  str_num[256]={0};

  char str[256]={0};     //用于存放运算符的字符数组

  int i=0,k,j;

  char *pstr=string;

 //从键盘中获取字符串表达式

 inputstr(string);

 printf("%s\n",string);

//提取字符串表达式中的数字

 pstr=string;
 
 j=0;
 
 k=0;
  
  for(i=0;i<=strlen(string);i++)
  
  { //"888+333*777"
  
  if (isalnum(*pstr))

  {

    str_num[j]=*pstr;
   
    j++;
   
   }else
   
   {
           
     str_num[j]='\0';
           
     num[k]=atoi(str_num);
           
     k++;
           
     j=0; //下标归零
        
        }
        
        pstr++;//指向sc数的下一字符
   
    }


   //测试一下n[222]
   
    for (i=0;i<5;i++)
   
    {
   
        printf("%d,",num[i]);
   
    }

     
   printf("\n");

//提取字符串表达式中的运算符

pstr=string;

k=0;

for(i=0;i<=strlen(string);i++)

    {
   
      if(isalnum(*pstr))

        {
        
          //continue;
        
        }else{
        
           str[k]=*pstr;

           k++;
        
        }

        pstr++;
   
    }
   
   //测试
    for (i=0;i<strlen(str);i++)
    {
        printf("%c,",str[i]);
    }

    //计算乘除功能

    while(1)

    {
   
       for(i=0;i<=strlen(str);i++)

        {
        
            if(str[i]=='*'||str[i]=='/')

            {
                if(str[i]=='*')

                {

                   num[i+1]=num[i]*num[i+1];
            
                }else{
            
                  num[i+1]=num[i]/num[i+1];
            
               }

               //将数组num中的数向前移动一位
//printf("%d",strlen(str));
               for(j=i;j<=strlen(str)+1;j++)

               {
        
                 num[j]=num[j+1];

                 str[j]=str[j+1];
               }
        
           }

        }
        //打印出当前一步计算结果的表达式
//printf("%d\n",strlen(str));
        for (i=0;i<=strlen(str);i++)

        {

           printf("%d%c",num[i],str[i]);
        
        }

        //退出条件

        j=1;

        for(i=0;i<=strlen(str);i++)

        {
        
           if(str[i]=='*'||str[i]=='/')

            {
            
                j=0;
            
            }
        
        }

        if(j)

        {
        
           break;

        }
   
    }

   //加减功能

    while(1)

    {
   
       for(i=0;i<=strlen(str);i++)

        {
        
            if(str[i]=='+'||str[i]=='-')

            {
                if(str[i]=='+')

                {

                   num[i+1]=num[i]+num[i+1];
            
                }else{
            
                  num[i+1]=num[i]-num[i+1];
            
               }

               //将数组num中的数向前移动一位

               for(j=i;j<=strlen(str)+1;j++)

               {
        
                 num[j]=num[j+1];

                 str[j]=str[j+1];
               }
        
           }

        }
        //打印出当前一步计算结果的表达式

        for (i=0;i<=strlen(str);i++)

        {

           printf("%d%c",num[i],str[i]);
        
        }

        //退出条件

        j=1;

        for(i=0;i<=strlen(str);i++)

        {
        
           if(str[i]=='+'||str[i]=='-')

            {
            
                j=0;
            
            }
        
        }

        if(j)

        {
        
           break;

        }
   
    }

    getchar();

return 0;

}

void inputstr(char *p_str)

{

 while(1)

    {
   
       *p_str=getchar();

       if(*p_str=='\n')

        {
        
           break;
        
        }
   
       p_str++;

    }

}
搜索更多相关主题的帖子: include 表达式 字符串 如何 
2015-06-25 11:20
lp617
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2015-5-15
收藏
得分:0 
有没有大神帮个忙啊!!谢谢了
2015-06-25 21:15
快速回复:如何将此程序各个模块改写为函数用主函数调用,求改后的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037085 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved