6 条题解

  • -1
    @ 2024-2-23 16:28:55

    叠甲:c风格处理速度比c++风格处理速度快,但两者皆可通过c++测试,请谅解!!!

    首先,我们先排除计算器的常见问题:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    int a,b;
    char c;
    cin>>a>>b>>c;
    if(c!='+'&&c!='-'&&c!='*'&&c!='/')
    {
    cout<<"Invalid operator!";
    return 0;//return 0指系统返回值,不再执行下个语句
    }
    if(c=='/'&&b==0)
    {
    cout<<"Divided by zero!";
    return 0;
    }
    

    这样,我们就可以排除符号写错、除数为0的问题。

    符号写错是+、-、*、/以外的符号写入,从而导致的错误;

    除数为0是一个DDDD(懂的都懂)的问题,不再多提。

    其次,再加入算法,运行

    if(c=='+')
    cout<<a+b;
    if(c=='-')
    cout<<a-b;
    if(c=='*')
    cout<<a*b;
    if(c=='/')
    cout<<a/b;
    }
    

    总结:此题难点在于一些错误输出的应对方法,但对算法没有过多要求,总体来说还是比较简单的。

    • @ 2024-2-29 20:35:04

      你的代码的确有问题,或者说是可以改进的地方: 1.头文件? 2.为什么不用scanf和printf而用cin和cout?scanf和printf的编译时间比cin和cout短,很好的规避了很多编译超时 3.同样是时间的问题,if else结构复杂,行数多,繁琐,我们可以用swich语句来解决:

      swich(){
          cace' ':cout<<;break;
          cace' ':cout<<;break;
          cace' ':cout<<;break;
          cace' ':cout<<;break;
          default:cout<<;break;
      }
      

      只需要在判断除法的时候判断是否为0就行了:

      if(y==0) cout<<"Divided by zero!"; 
      else cout<</;
      

      编译时间长,着我没骗你,我用DEV做了个实验: 你的代码:image

      我的代码:image 只不过这道题比较简单,还不太可能出现编译超时,不过做到复杂的算法题就得小心了。

      下面分享一下我的代码:

      #include<stdio.h>
      int main()
      {
          int a,b;
          char c;
          scanf("%d %d %c",&a,&b,&c);
          if (b==0)
          printf("Divided by zero!");
          else
          switch(c)
          {
              case '+':printf("%d",a+b);break;
              case '-':printf("%d",a-b);break;
              case '*':printf("%d",a*b);break; 
              case '/':
                      if (b==0) printf("Divided by zero!");
                      else printf("%d",a/b);
                      break;
              default:printf("Invalid operator!");
          }
          return 0;
      }
      
    • @ 2024-2-29 20:37:35

      我们的代码时差就2秒,现实中是很短的,不过在计算机里可是“谬以千秒”

    • @ 2024-3-5 20:54:20

      @ 你咋拿c风格来比呢?c风格肯定比c++风格处理速度快啊!我只使用c++风格演示。并且,首次编译时间较长,需多次编译

    • @ 2024-3-5 21:10:15

      谅解一下,头文件因未压在代码块中导致显示不出来,现已改正

信息

ID
1222
时间
1000ms
内存
128MiB
难度
2
标签
(无)
递交数
195
已通过
127
上传者