2301_77065359 2023-04-06 23:19 采纳率: 86.7%
浏览 43
已结题

c语言程序编写中的疑问

编写程序,实现以下功能:

问题是这样的:
首先,提示用户输入5个不大于10的正整数(分5次提示,每次输入1个整数);
然后,每次用户输入数值后,判断用户输入数值是否符合要求,如果不符合则输出错误信息并终止运行;
最后,判断用户输入的5个整数是否有重复,并输出结果(“您输入的数据包含重复值” 或者 “您输入的数据不包含重复值”)。
注意:此题需要提交3个运行结果截图,分别对应合法有重复值、合法无重复值和非法的输入。

但是怎么才能每次输入数据之后都提示再次输入数据呢?这个循环我不会啊

  • 写回答

2条回答 默认 最新

  • Dummer25 2023-04-06 23:29
    关注
    #include <stdio.h>
    
    int main() {
        int numbers[5];
        int i, j, num;
    
        // 提示用户输入五个正整数
        printf("请依次输入5个不大于10的正整数:\n");
        for (i = 0; i < 5; i++) {
            while (1) {
                printf("请输入第%d个数:", i+1);
                scanf("%d", &num);
                if (num <= 0 || num > 10) {
                    printf("输入错误,请输入1~10之间的整数\n");
                }
                else {
                    int flag = 0;
                    for (j = 0; j < i; j++) {
                        if (numbers[j] == num) {
                            flag = 1;
                            break;
                        }
                    }
                    if (flag) {
                        printf("输入错误,不能重复输入相同的数\n");
                    }
                    else {
                        numbers[i] = num;
                        break;
                    }
                }
            }
        }
    
        // 判断是否有重复值
        int has_duplicate = 0;
        for (i = 0; i < 4; i++) {
            for (j = i+1; j < 5; j++) {
                if (numbers[i] == numbers[j]) {
                    has_duplicate = 1;
                    break;
                }
            }
            if (has_duplicate) {
                break;
            }
        }
    
        if (has_duplicate) {
            printf("您输入的数据包含重复值\n");
        }
        else {
            printf("您输入的数据不包含重复值\n");
        }
    
        return 0;
    }
    
    

    在上述代码中,我们首先创建了一个数组 numbers 来存储用户输入的五个正整数。然后使用 for 循环和 while 循环,每次提示用户输入一个正整数,并使用条件判断结构检测用户输入是否符合要求(是整数、在 1~10 之间、没有重复),如果不符合要求则输出错误信息并要求用户重新输入。如果用户输入符合要求,则将其添加到数组 numbers 中,并执行下一次循环。

    循环结束后,我们使用两个嵌套的 for 循环来判断数组中是否有重复值。如果有重复值,则输出包含重复值的提示,否则输出不包含重复值的提示。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月17日
  • 已采纳回答 4月10日
  • 创建了问题 4月6日

悬赏问题

  • ¥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 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?