| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1265 人关注过本帖
标题:求大神指点
只看楼主 加入收藏
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
结帖率:66.67%
收藏
已结贴  问题点数:18 回复次数:9 
求大神指点
题目     多组输入
             输入字符串A@B,其中A,B代表整数(字符串),
             @代表加减乘除任一符号
             输出
             A@B=C          举例,输入1*2输出1*2=2
                                                 输入2/-1=-2
以下是我关于乘法的代码,当输入正数时是对的,但是不知道负数应该怎么弄,求大神指点
#include<stdio.h>
#include<string.h>
int main()
{
    char str[100];
    int i,j,n,x,y,c;
    while(gets(str)!=NULL)
  {
    x=y=0;
    n=strlen(str);
    for(i=0;i<n;i++)
    {
      if(str[i]=='*'){
                       y=y+x;
                       x=0;
                     }
           else x=x+str[i]-'0';
    }
    y=y*x;
    for(i=0;i<n;i++)printf("%c",str[i]);
    printf("=%d\n",y);
  }
    return 0;
}
搜索更多相关主题的帖子: 输入 include str int for 
2018-12-03 22:19
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
举例中输入2/-1输出2/-1=-2
2018-12-03 22:21
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
收藏
得分:6 
你这个乘法的代码写错了,只能个位数相乘。
else x=x*10+str[i]-'0';

[此贴子已经被作者于2018-12-3 23:17编辑过]


saber,别哭.
2018-12-03 23:16
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 3楼 幻紫灵心
好吧,谢谢大神,我再看看
2018-12-03 23:43
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 3楼 幻紫灵心
#include<stdio.h>
#include<string.h>
int main()
{
    char str[100];
    int i,j,n,x,y,c;
    while(gets(str)!=NULL)
  {
    x=y=0;
    n=strlen(str);
    for(i=0;i<n;i++)
    {
      if(str[i]=='*'){
                       y=y+x;
                       x=0;
                     }
           else x=x*10+str[i]-'0';
    }
    y=y*x;
    for(i=0;i<n;i++)printf("%c",str[i]);
    printf("=%d\n",y);
  }
    return 0;
}
2018-12-03 23:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:6 
回复 5楼 qcjqcj
为什么代码这么复杂,结果还错误
我输入 2*-3,你的代码输出 -54,而且你的代码还没考虑空格。

程序代码:
#include <stdio.h>

int main( void )
{
    char opt;
    for( int a,b; scanf("%d %c%d",&a,&opt,&b)==3; )
    {
        switch( opt )
        {
        case '+': printf("=%d\n",a+b); break;
        case '-': printf("=%d\n",a-b); break;
        case '*': printf("=%d\n",a*b); break;
        case '/': b!=0 ? printf("=%d\n",a/b) : puts("[error] divide by zero."); break;
        default: puts("[error] Input format error."); break;
        }
    }
}

2018-12-04 08:50
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:6 
while(gets(str)!=NULL)这个循环控制条件怎么终止循环?gets的返回值正常情况下返回的是一个指针,只有出错的情况下才返回0,请问你怎么人为制造错误啊?
2018-12-04 09:24
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 6楼 rjsp
要求是输入字符串啊,不用考虑空格
2018-12-04 10:24
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 7楼 wlxy_wang
这个应该没问题,我们多组输入都这么做的
2018-12-04 10:25
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
回复 9楼 qcjqcj
这个你输入时没有问题,但你的循环怎么终止啊?输入没问题,不代表循环终止了。
2018-12-06 09:33
快速回复:求大神指点
数据加载中...
 
   



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

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