| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6161 人关注过本帖
标题:输入一行加减运算的字符串(少于80个字符),计算加减运算的结果
取消只看楼主 加入收藏
hsm
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-11-19
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:4 
输入一行加减运算的字符串(少于80个字符),计算加减运算的结果
输入一行加减运算的字符串(少于80个字符),计算加减运算的结果
输入输出示例:
10+52-28
y=34
我写的源程序是这样的,系统编译是没有问题的,但是求出来的结果不对,不知道哪里错了,麻烦看一下
#include<stdio.h>
#include<math.h>
#define N 80
void main()
{
    int i,j,m=0,p=0,a[N],sum;              //m为减号个数,p为加号个数
    char num[N];
    gets(num);
    for(i=0,j=0;((num[i]>='0'&&num[i]<='9')||num[i]=='+'||num[i]=='-')&&num[i]!='\0';i++)//判断是否有其他字符
        j++;
    if(i=j)
    {
        for(i=0;num[i]!='\0';i++)
        {
            a[i]=(int)num[i]-48;
            if(a[i]==-5)
                p++;
            if(a[i]==-3)
            {
                m++;
                a[i+1]=-a[i+1];
            }
            if(a[i+1]!=-5&&a[i+1]!=-3&&a[i+1]!='\0')
            {
                if(a[i]!=-5&&a[i]!=-3)
                    a[i]*=10;
                if(a[i-1]=-3&&i!=0)
                    a[i+1]=-a[i+1];
            }
        }
        sum=p*5+3*m;
        for(i=0;num[i]!='\0';i++)
            sum+=num[i];
        printf("y=%d\n",sum);
    }
    else
        printf("Invalid input!\n");
}
搜索更多相关主题的帖子: include 字符串 源程序 include 字符串 源程序 
2015-12-09 23:24
hsm
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-11-19
收藏
得分:0 
回复 2楼 rjsp
ASCII代码中+值为43,-为45,与48相减分别为-5,-3,我是通过是否为-5和-3来判断运算符
2015-12-10 10:45
hsm
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-11-19
收藏
得分:0 
回复 4楼 rjsp
刚刚上课才讲了指针(@﹏@)~
2015-12-10 16:11
hsm
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-11-19
收藏
得分:0 
如果有乘除呢,a怎么处理
2015-12-11 21:51
hsm
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-11-19
收藏
得分:0 
回复 7楼 rjsp
如果有乘除呢,a怎么处理
2015-12-11 22:52
快速回复:输入一行加减运算的字符串(少于80个字符),计算加减运算的结果
数据加载中...
 
   



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

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