是Zoria~ 2022-12-27 11:20 采纳率: 70%
浏览 27
已结题

设计函数出现错误求解答

题目要求:设计一个函数,输出一份有4个选项的菜单,提示用户选择;再设计一个带两个整型参数的函数,两个形参分别表示上限和下限,在调用该函数时,用户键盘输入的整数在上下限之间(1~4),则利用前一个函数输出用户选择的菜单,若超过上下限,则提示用户输入错误、重新输入,直至输出菜单中一个选项

不知道我输的程序哪里出现了错误,求朋友们指点一二


#include<stdio.h>
int SHUCHU()
{
    printf("Please choose one of the following:\n");
    printf("1) copy files   2) move files\n");
    printf("3) remove files 4) quit\n");
    printf("Enter the number of your choice:");
    return 0;
 } 
 
 int PANDUAN(int x,int y)
 {
     x=4,y=1;
     int a;
     scanf("%d",&a);
     if((a>x)||(a<y))
     {
         printf("用户输入错误、重新输入");
     }
     return 1;
 }
 
  • 写回答

3条回答 默认 最新

  • heart_6662 2022-12-27 11:37
    关注

    望采纳!点击该回答右侧的“采纳”按钮即可采纳!!!
    大概来说就是三个问题

    1. 在函数 PANDUAN 中,x 和 y 的值没有意义,因为在函数内部立即将其重新赋值为 4 和 1。应将形参的值传入函数内部。
    1. 在函数 PANDUAN 中,每次用户输入的数字都超出了范围,因为输入的数字应该和 x 和 y 进行比较,而不是和 4 和 1 进行比较。
    1. 在函数 PANDUAN 中,每次用户输入错误时,都会提示用户输入错误、重新输入,但是并没有提供重新输入的机会。应该在提示用户输入错误后,再次调用 scanf 函数,让用户重新输入。

    下面是根据你的代码修改的结果

    
    #include<stdio.h>
    
    void SHUCHU()
    {
    printf("Please choose one of the following:\n");
    printf("1) copy files 2) move files\n");
    printf("3) remove files 4) quit\n");
    printf("Enter the number of your choice:");
    }
    
    int PANDUAN(int x, int y)
    {
    int a;
    scanf("%d", &a);
    while (a > x || a < y)
    {
    printf("输入错误,请重新输入:");
    scanf("%d", &a);
    }
    return a;
    }
    
    int main()
    {
    SHUCHU();
    int choice = PANDUAN(4, 1);
    printf("你的选择是: %d\n", choice);
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看