| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 621 人关注过本帖
标题:各位帮我看看这个程序有什么问题,谢谢啦!
只看楼主 加入收藏
zxrd1989
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2011-5-11
结帖率:64.29%
收藏
已结贴  问题点数:2 回复次数:11 
各位帮我看看这个程序有什么问题,谢谢啦!
#include<stdio.h>//1
#include<math.h>//2
void main()//3
{
   
    double a;
    double b;
     double s;
      double x;
        
    char sign;
    char str[20];
 if(scanf("%lf",&a),
    scanf("%c",&sign),
    scanf("%lf",&b))
    {//
   
    if(sign=='+')
    {
        s=a+b;
    }
   

    else if(sign=='-')
    {
        s=a-b;
    }
    else if(sign=='*')
    {
        s=a*b;
    }
    else if(sign=='/')
    {
        s=a/b;
    }
   
   
        
   
   
   
   

    printf("%f\n",s);
}
//第一个IF语句//
else if(gets(str),scanf("%lf",&x))
{
    if(str=="sqrt")
    {
        s=sqrt(x);
    }
    printf("%f",s);
   
}

}


搜索更多相关主题的帖子: str include double 
2011-05-11 21:51
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
看不懂, 太复杂!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-11 22:04
chenjianmbt
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-9
收藏
得分:0 
,有点难了。
2011-05-12 12:51
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
兄弟,最好用switch语句,函数也可以
2011-05-12 13:13
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
程序代码:

#include<stdio.h>
#include<math.h>
#include<string.h>//
void main()
{
    
    double a;
    double b;
     double s;
      double x;
        
    char sign;
    char str[20],str1[10]="sqrt";//
 if(scanf("%lf",&a)&&scanf("%c",&sign)&&scanf("%lf",&b))//
    {
    
    if(sign=='+')
    {
        s=a+b;
    }
    

    else if(sign=='-')
    {
        s=a-b;
    }
    else if(sign=='*')
    {
        s=a*b;
    }
    else if(sign=='/')
    {
        s=a/b;
    }
    printf("%f\n",s);
}
else
{
    scanf("%s",str),scanf("%lf",&x);//至于你为什么你用gets来接收字符串不能实现你所需要的功能,等我再复习复习下才能回答你!
    if(!(strcmp(str,str1)))//注意:字符串不能直接判断!自己查查 strcmp()的用法!
    {
        s=sqrt(x);
    }
    printf("%f",s);
    
}
getch();

}
注:自己对照看看吧!




图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册



好了,现在可以告诉你为什么不能用gets()来实现了!其实是可以滴,不过要输入sqrt后按回车,然后再输入数字,为什么呢?因为gets()函数从缓冲区中读取字符,当它遇到换行符时候才会停止,并将读取的结果放在字符数组中,注意,读取到的换行符会被转换为NULL值,并由此来结束字符串!

[ 本帖最后由 liangjinchao 于 2011-5-12 13:37 编辑 ]

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-12 13:19
月如水0
Rank: 2
等 级:论坛游民
帖 子:29
专家分:76
注 册:2011-5-8
收藏
得分:0 
gets只能读入一个字符
2011-05-12 13:36
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 6楼 月如水0
getc()才是只能读一个字符吧?gets()才是读字符串滴吧?

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-12 13:39
zxrd1989
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2011-5-11
收藏
得分:0 
回复 7楼 liangjinchao
哦。。。我忘了在前面加个字符串,
2011-05-12 19:17
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
没意思  计算器要做成类 这样会有价值

                                         
===========深入<----------------->浅出============
2011-05-12 21:00
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
回复 9楼 laoyang103
求解!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-12 21:03
快速回复:各位帮我看看这个程序有什么问题,谢谢啦!
数据加载中...
 
   



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

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