注册 登录
编程论坛 VC++/MFC

计算器代码,求大神指教,

l46030751 发布于 2015-10-02 17:27, 2490 次点击
shuru:printf("\t\t请输入符号:(+-*/)");
    scanf("%1c",&fuhao);
    getchar();
    if(fuhao=='+'||fuhao=='-'||fuhao=='*'||fuhao=='/');
    {
        printf("\t\t输入错误请从新输入\n");
        
        goto shuru;
    }
  请问还有其他写法吗

这是整个部分
#include<stdio.h>
void main()
{
    float o,t,jieguo;
    char fuhao,puanduan;
    printf("\t\t*******************************\n");
    printf("\t\t*          计算器             *\n");
    printf("\t\t*******************************\n");
    //输入部分
kaishi:    printf("\t\t请输入第一个数字: ");
    scanf("%f",&o);
    getchar();
shuru:printf("\t\t请输入符号:(+-*/)");
    scanf("%1c",&fuhao);
    getchar();
    if(fuhao=='+'||fuhao=='-'||fuhao=='*'||fuhao=='/');
    {
        printf("\t\t输入错误请从新输入\n");
        
        goto shuru;
    }

   

    printf("\t\t请输入第二个数字: ");
    scanf("%f",&t);
    getchar();

    if(fuhao=='+')
        jieguo=o+t;
    if(fuhao=='-')
        jieguo=o-t;
    if(fuhao=='*')
        jieguo=o*t;
    if(fuhao=='/')
        jieguo=o/t;
      //计算结果
    printf("\t\t最终结果为:%0.2f\n",jieguo);

    //判断

    printf("\t\t是否继续使用(Y/N): ");
    scanf("%c",&puanduan);
    if(puanduan=='Y')   
   
        goto kaishi;

   
        




}
10 回复
#2
l460307512015-10-02 17:29
实现只能输入加减乘除符号,
#3
eagle_li2015-10-06 21:10
回复 楼主 l46030751
只是改了下你原来的程序   注意下细节和逻辑  成功就在你的眼前

shuru:printf("\t\t请输入符号:(+-*/)");
    scanf("%1c",&fuhao);
    getchar();
    if(fuhao!='+' && fuhao!='-' && fuhao!='*' && fuhao=='/')
    {
        printf("\t\t输入错误请从新输入\n");
        
        goto shuru;
    }
#4
as10692015-10-29 10:56
我想弱弱的问一句shuru:这个符合语法吗
之前都没见过
#5
as10692015-10-29 11:14
明白了是不是和goto语句配合的
真是萌萌了
#6
as10692015-10-29 11:26
我试了一下一直卡在符号那里
显示输入错误请重新输入
不知道为什么

#7
xxhuan_20032015-10-30 23:31
   if(fuhao=='+'||fuhao=='-'||fuhao=='*'||fuhao=='/');  //这个地方如果有分号,你永远都要执行下面两句,如果没有分号,条件错误!!
    {
        printf("\t\t输入错误请从新输入\n");
        
        goto shuru;
    }

试试:
 if(fuhao !='+'&& fuhao!='-'&& fuhao!='*'&& fuhao!='/')
    {
        printf("\t\t输入错误请从新输入\n");
        
        goto shuru;
    }
#8
xxhuan_20032015-10-30 23:32
怎么那么喜欢用goto???
#9
贤理云翔2015-11-16 18:09
goto语句会使程序的可读性降低,如果不加限制,会破坏结构化设计风格,而且会跳过许多重要的语句或变量的赋值。
#10
丁松2015-11-17 10:55
#include<stdio.h>
void main()
{
    float o,t,jieguo;
    char fuhao,puanduan;
    printf("\t\t*******************************\n");
    printf("\t\t*          计算器             *\n");
    printf("\t\t*******************************\n");
    //输入部分
kaishi:    printf("\t\t请输入第一个数字: ");
    scanf("%f",&o);
    getchar();
shuru:printf("\t\t请输入符号:(+-*/)");
    scanf("%1c",&fuhao);
    getchar();
    if((fuhao!='+')&&(fuhao!='-')&&(fuhao!='*')&&(fuhao!='/'))
    {
        printf("\t\t输入错误请从新输入\n");
        goto shuru;
    }

   

    printf("\t\t请输入第二个数字: ");
    scanf("%f",&t);
    getchar();

    if(fuhao=='+')
        jieguo=o+t;
    if(fuhao=='-')
        jieguo=o-t;
    if(fuhao=='*')
        jieguo=o*t;
    if(fuhao=='/')
        jieguo=o/t;
      //计算结果
    printf("\t\t最终结果为:%0.2f\n",jieguo);

    //判断

    printf("\t\t是否继续使用(Y/N): ");
    scanf("%c",&puanduan);
    if(puanduan=='Y')   
   
        goto kaishi;
}
#11
丁松2015-11-17 10:56
注意你的if判断条件,你的变量名,标识符我也是醉了
1