liuyanxiong 发表于 2019-12-1 11:52:43

有点问题不懂,来看看吧!

3.在屏幕上显示如下的菜单,程序功能是当从键盘输入一个整数时,对其判断,如果数字在1-4 的范围内,则从键盘输入两个数,完成相应的运算后输出其结果。如果不在0-4 的范围内则输出:输入错误。例如输入 2,提示输入两个数,输出这两个数的差。计算完后再输出 “是否继续(Y/N)?”,如果输入 Y,则继续显示菜单,提示输入运算代码进行计算。

提示:
程序实现步骤如下: 
(1)输出如图的菜单
(2)从键盘输入一个整数 
(3)对输入的数进行判断:
如果等于1,提示输入两个数,输出二者的和,执行第(4)步。
如果等于2,提示输入两个数,输出二者的差,执行第(4)步。
如果等于3,提示输入两个数,输出二者的积,执行第(4)步。
如果等于4,提示输入两个数,输出二者的商,执行第(4)步。
如果等于0,执行第(7)步 
(4)输出:是否继续(Y/N) 
(5)从键盘输入一个字符 
(6)对输入的数进行判断:
如果等于字符 Y,清除屏幕上的内容,执行第(1)步
如果等于字符 N,执行第(7)步 
(7)结束程序

想了好久,(6)不知道该怎么实现。

liuyanxiong 发表于 2019-12-1 11:54:00

&#160是多余的

jackz007 发表于 2019-12-1 12:46:43

#include <stdio.h>
#include <conio.h>

main(void)
{
      char c                                                                ;
      int a , b                                                             ;
      bool f                                                                ;
      for(f = true ; f ;) {
                printf("\n")                                                ;
                printf("\t1. 两个数做加法\n")                                 ;
                printf("\t2. 两个数做减法\n")                                 ;
                printf("\t3. 两个数做乘法\n")                                 ;
                printf("\t4. 两个数做除法\n")                                 ;
                printf("\t0. 结束程序\n")                                     ;
                printf("\t   请选择: ")                                       ;
                c = getch()                                                   ;
                printf("%c\n\n" , c)                                          ;
                c -= '0'                                                      ;
                if(c > 0 && c < 5) {
                        printf("\t请输入两个数 : ")                           ;
                        scanf("%d%d" , & a , & b)                           ;
                        switch(c) {
                              case 1:
                                        printf("\t和为 %d\n" , a + b)         ;
                                        break                                 ;
                              case 2:
                                        printf("\t差为 %d\n" , a - b)         ;
                                        break                                 ;
                              case 3:
                                        printf("\t积为 %d\n" , a * b)         ;
                                        break                                 ;
                              case 4:
                                        if(b) printf("\t商为 %d\n" , a / b)   ;
                                        else printf("\t** 除数不能为 0 **\n") ;
                                        break                                 ;
                        }
                        printf("\n")                                          ;
                        printf("\t是否继续 (y/n)")                            ;
                        f = false                                             ;
                        c = getch()                                           ;
                        printf("%c\n\n" , c)                                  ;
                        if(c == 'Y' || c == 'y') f = true                     ;
                } else if(! c) {
                        printf("\n")                                          ;
                        f = false                                             ;
                } else {
                        printf("\t** 输入错误 **\n")                        ;
                }
      }
}

笨小孩丶 发表于 2019-12-1 13:29:30

本帖最后由 笨小孩丶 于 2019-12-1 13:31 编辑

#include <stdio.h>
int main()
{
    int a;
    float b,c;
    printf("请输入一个0~4的整数: ");
    scanf("%d",&a);
    switch(a)
      {
            case 0:break;
            case 1:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的和为:%f\n",b+c);
                   };break;
            case 2:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的差为:%f\n",b-c);
                   };break;
            case 3:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的积为:%f\n",b*c);
                   };break;
            case 4:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的商为:%f\n",b/c);
                   };break;
            default :printf("输入错误");
      }
      return 0;
}
我还是新手!!!试着写的v

liuyanxiong 发表于 2019-12-1 15:52:14

笨小孩丶 发表于 2019-12-1 13:29
#include
int main()
{


所以第六步怎么实现

liuyanxiong 发表于 2019-12-1 15:52:55

jackz007 发表于 2019-12-1 12:46


还有别的方法吗,还没学bool。

jackz007 发表于 2019-12-1 16:14:53

本帖最后由 jackz007 于 2019-12-1 16:22 编辑

liuyanxiong 发表于 2019-12-1 15:52
还有别的方法吗,还没学bool。

   没学过 bool,现在学就行了。

   bool 是布尔型数据,这种数据只有两个值,true(真) 和 false(假),专门用来表示条件表达式的运算结果。当一个条件表达式成立的时候,它的值就是 true,否则,就是 false。

   例如:1 < 3 是 true,1 > 3 是 false。

   if、while 后面括号里以及 for 语句位于括号中两个分号之间的都是布尔表达式,只有表达式的值是 true,才会执行后方条件归属语句块内的语句。

      int a , b   ;

      a = 1       ;
      b = 3      ;

      if(a < b) {
            . . . . . .
      }

      while(a < b) {
            . . . . . .
            a ++       ;
      }

      for(a = 1 ; a < b ; a ++) {
            . . . . . .
      }

笨小孩丶 发表于 2019-12-1 17:09:03

liuyanxiong 发表于 2019-12-1 15:52
所以第六步怎么实现

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    int a;
    float b,c;
A:printf("请输入一个0~4的整数: ");
    scanf("%d",&a);
   
    if(a>0&&a<5)
    {
      switch(a)
      {
            case 1:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的和为:%f\n",b+c);
                   };break;
            case 2:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的差为:%f\n",b-c);
                   };break;
            case 3:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的积为:%f\n",b*c);
                   };break;
            case 4:{
                     printf("请输入两个数: ");
                     scanf("%f %f",&b,&c);
                     printf("二者的商为:%f\n",b/c);
                   };break;
            default :printf("输入错误");
      }
      printf("是否继续(Y/N): ");
      char d=getch();
      if(d=='Y'||'Y'==d)
      {
          system("cls");
          goto A;
      }
    }
    else
      return 0;
}

笨小孩丶 发表于 2019-12-1 17:10:35

清屏语句我也刚差的资料;

笨小孩丶 发表于 2019-12-1 17:11:07

本帖最后由 笨小孩丶 于 2019-12-1 17:14 编辑

笨小孩丶 发表于 2019-12-1 13:29

页: [1]
查看完整版本: 有点问题不懂,来看看吧!