C语言案例 不重复数字输出--01

题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

步骤一:定义程序目标
    编写一个C程序,使用1、2、3、4四个数字组成不相同且不重复的三位数,分别显示出来
步骤二:程序设计
    整个程序由for与if两个模块组成,一共有三位数,因此有三个for循环,for循环每次遍历的数字需要使用if条件语句判定是否存在相同的三位数,相同或有重复的数字将被if语句剔除掉,最后打印出来数字。
编写代码:
个人代码:
#include<stdio.h>
int main(){
        int a,b,c,count=0;  // 定义三个循环变量以及一个用于计数的变量count
        for(a=1;a<=4;a++){  
                count++;
                for(b=1;b<=4;b++){
                if(a==b){
                        continue;
                }
                        count++;
                        for(c=1;c<=4;c++){
                                if(a==c||b==c){
                                continue;
                                }
                                count++;
                                printf("%d%d%d\n",a,b,c);
                        }
                }
        }
        printf("Total number is %d\n",count);   // 记录代码运行后的符合条件的数目
}

效果:


优化代码:
# 代码修复部分
1.原本使用continue跳出本次具有重复数字的策略设定修改为最后使用if一次性判定,减少代码冗余,保障了代码简洁。
2.同时添加了相应注释,大大提高的程序的可读性。
3.修正了不重复计数不正确bug。

#include<stdio.h>

int main()

{

int a,b,c,count=0; // 定义三个循环变量以及一个用于计数的变量count 

    for(a=1;a<=4;a++) { // 以下为三重循环

        for(b=1;b<=4;b++) {

            for (c=1;c<=4;c++) {

                if (a!=b&&a!=c&&b!=c) { // 确保a、b、c三位互不相同

                    printf("%d,%d,%d\n",a,b,c);

                    count++; // 记录代码运行后的符合条件的数目

                }

            }

        }

    }

        printf("一共有%d个数字!\n",count);

    return 0;

}

效果:

总结

      整个过程看上去代码量不多,但是涉及的知识点不少,如注释、循环、判定、程序设计思想等。初始的设计的时候,会有bug,这时我们就需要调试并修正程序BUG,注意看我修正程序代码后是否还有存在问题?若没有找到,请看看步骤二程序设计这部分。好了,本章节就到这里,我们下一章节再见,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52357.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

em3288 linux_4.19 第一次烧写无法进入内核的情况

1. 情况一&#xff1a; /DDR Version 1.11 20210818 In SRX Channel a: DDR3 400MHz Bus Width32 Col10 Bank8 Row15 CS1 Die Bus-Width16 Size1024MB Channel b: DDR3 400MHz Bus Width32 Col10 Bank8 Row15 CS1 Die Bus-Width16 Size1024MB OUT Boot1 Release Time: Jul 22 2…

音频转文字软件哪个好用?这些软件你不容错过

在一个繁忙的办公室里&#xff0c;小明正在与他的同事小李聊天。突然&#xff0c;小明兴奋地拍了拍桌子&#xff0c;眉开眼笑地对小李说道&#xff1a;你知道吗&#xff1f;我近期发现了一个实用的音频转文字工具&#xff01;它可以帮助我们将音频转换成文字。 小李&#xff1…

MyBatis-Plus实现分页查询

目录 MyBatis-Plus实现分页查询 代码 定义一个MyBatis-Plus拦截器 在连接数据库的配置文件中添加MyBatis-Plus日志查看MyBatis-Plus的SQL语句 测试 运行结果 MyBatis-Plus实现分页查询 代码 定义一个MyBatis-Plus拦截器 package com.dong.config;import com.baomidou.my…

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口

钉钉对接打通金蝶云星空获取流程实例列表详情&#xff08;宜搭&#xff09;接口与其他应收单接口 对接系统钉钉 钉钉&#xff08;DingTalk&#xff09;是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台&#xff0c;提供PC版&#xff0c;Web版和手机版&#xff0c;有考…

boost beast http server 测试

boost beast http client boost http server boost beast 是一个非常好用的库&#xff0c;带上boost的协程&#xff0c;好很多东西是比较好用的&#xff0c;以下程序使用四个线程开启协程处理进入http协议处理。协议支持http get 和 http post #include <boost/beast/cor…

【JS】浏览器不同窗口、标签页或 iframe之间的通讯 - 技术的尽头是魔术

效果 左上↖地址: http://127.0.0.1:5500/index.html 左下↙地址: http://127.0.0.1:5500/index.html?hidden 右上↗地址: http://127.0.0.1:5500/index.html?hidden 右下↘地址: http://127.0.0.1:5500/index.html?hidden index.html <!DOCTYPE html> <html>…

[Docker实现测试部署CI/CD----相关服务器的安装配置(1)]

目录 0、CI/CD系统最终架构图规划IP地址 1、git配置Git下载pycharm配置gitidea配置git 2、GitLab安装与配置主机要求拉取镜像定义 compose.yml启动gitlab浏览器访问并修改密码查看登录密码修改密码 3、SonarQube 安装与配置拉取镜像修改虚拟内存的大小启动SonarQube登录 SonarQ…

IO进程线程第七天(8.4)信号量,条件变量

在第一题的基础上加上一个需求&#xff1a;要求打印&#xff0c;倒置线程&#xff0c;顺序执行。出现的现象为先打印1234567&#xff0c;后打印7654321&#xff08;不使用flag&#xff09; 创建两个线程&#xff0c;其中一个线程读取文件中的数据&#xff0c;另外一个线程将读…

3分钟白话RocketMQ系列—— 核心概念

白话3分钟&#xff0c;快速了解RocketMQ基础&#xff0c;包括适用场景&#xff0c;以及基本概念。 看完如果不了解&#xff0c;欢迎来打我。 关键字摘要 低延迟、高可用、高可靠、高并发 的消息中间件适合在线业务分为producer、consumer、nameserver、broker等角色另外还有主…

【C++】STL——stack和queue的模拟实现、空间适配器、deque的介绍、增删查改函数的简单实现

文章目录 1.deque的简单介绍2.模拟实现stack3.模拟实现queue 1.deque的简单介绍 deque的介绍文档 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度…

15 springboot项目——thymeleaf语法与关闭模板引擎

15.1 thymeleaf语法 在html文件中&#xff0c;有些是需要使用本地的css样式&#xff0c;使用thymeleaf语法加载&#xff1a; 首先对head标签上面的html标签进行更改&#xff1a; <html lang"en" xmlns:th"http://www.thymeleaf.org"> 其次&#xff…

Ajax快速入门

文章目录 Ajax原生ajaxaxios案例 Ajax Ajax就是前端访问服务器端数据的一个技术 还有主要就是异步交互 就是在不刷新整页面的情况下&#xff0c;和服务器交换部分我也数据 比如搜索的联想技术 同步和异步的概念 一个是客户端需要等待服务器完成处理&#xff0c;才能进行别的事…