C语言题目逻辑实战总结

eg1:

  • 已知有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少
    已知:1:三位数 ,2:1-4,3:各不相同,
    输出:1:有多少个这样的三位数,2:依次输出
    解题代码和思路
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*question1: 已知有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少已知:1:三位数 ,2:1-4,3:各不相同,输出:1:有多少个这样的三位数,2:依次输出思路:使用代码的方式将我们的代码表示出来解题的思路: 获取百位数,10位数,和个位数int a = 123; 获取百位数a/100 , 获取10位数a%100/10得到10位数1:一个采用分别表示的方法表示这三个数int b*100 + s*10 + g2: 使用循环的方式进行遍历 for循环,while循环,do while循环for(g = 1; g < 5; g++){}
*/
int main()
{int b, s, g;// 统计输出了多少个这样的三位数使用计数的方式进行统计,注意加法变量的初始化往往是从0开始的int count = 0;// 使用嵌套循环的方式进行遍历for (b = 1; b < 5; b++) {for (s = 1; s < 5; s++) {for (g = 1; g < 5; g++) {// 使用if语句进行判断,要求三个数都不相等输出三个数if (g != s && s != b && g != b ) {printf("%d,%d,%d\n", b, s, g);// 输出一次统计一次count++;}}}}// 在所有的循环条件遍历玩的情况下输出统计的数值printf("count = %d\n", count);return 0;}

在这里插入图片描述- [ ] eg2: 求取利润

  • 题目: 企业发放的奖金根据利润提成
  • #利润(I)低于或等于10万元时,奖金提成10%
  • #利润高于10万元,低于20万时,低于10万的部分按10%提成,高于10万部分可提成百分之7.5
  • #20万到40万之间时,高于20万元的部分,可提成百分之3
  • #60万到100万之间时,高于60万元部分按百分之1提成
  • 从键盘输入当月利润I求应该发放的奖金总数

解题思路的代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include

/*

  • eg2: 求取利润
  • 题目: 企业发放的奖金根据利润提成
  • #利润(I)低于或等于10万元时,奖金提成10%
  • #利润高于10万元,低于20万时,低于10万的部分按10%提成,高于10万部分可提成百分之7.5
  • #20万到40万之间时,高于20万元的部分,可提成百分之3
  • #60万到100万之间时,高于60万元部分按百分之1提成
  • 从键盘输入当月利润I求应该发放的奖金总数
  使用if else的进行处理int a = 10;int b = 20;if (a > b) {printf("a>b\n");}else if(a < b){printf("a<=b\n");}else {printf("a = b\n");}*/int main() {int profit = 0;int bonus = 0;int bonus1 = 100000 * 0.1;int bonus2 = 100000 * 0.1 + 100000 * 0.075;int bonus3 = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05;int bonus4 = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03;int bonus5 = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 +400000 * 0.015;//获取用户键盘输入printf("请输入当前业务利润:");scanf("%d:", &profit);// #利润(I)低于或等于10万元时,奖金提成10%if (profit <= 100000) {bonus = profit * 0.1;}else if (profit <= 200000) {bonus = bonus1 + (profit-100000) * 0.075;}else if (profit <= 400000) {bonus = bonus2 + (profit - 200000) * 0.05;}else if (profit <= 600000) {bonus = bonus3 + (profit - 400000) * 0.03;}else if (profit <= 1000000) {bonus = bonus4+ (profit - 600000) * 0.015;}else {bonus = bonus5 + (profit - 1000000) * 0.01;}printf("你获得的奖金为 = %d\n", bonus);return 0;
}

在这里插入图片描述eg3: 一个整数,他加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
解题思路代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg3: 一个整数,他加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?表示的意思是 x + 100 = n ^2; x + 100 + 168 = m^2;  ----------> x根据题目的意思:因为x可以推导数n 和 m 所以将x消去然后使用n 和 m  进行取值如: n ^2 - 100 = m ^2 - 268;m^2 - n ^2 = 168; (m + n) - (m - n) = 168; m + n = i; m - n = j ; i - j = 168;   2 <= i*j <= 168 / 2
*/int main() {int j, n, m, x;for (int i = 2; i <= 168 / 2; i++) {if (168 % i == 0) {j = 168 / i;m = (i + j) / 2;n = (i - j) / 2;x = n * n - 100;}}printf("x = %d", x);return 0;}

在这里插入图片描述eg4: 输入某年某月某日,判断这一天是这一年的第几天
解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg4: 输入某年某月某日,判断这一天是这一年的第几天
*/int main() {// 获取用户键盘输入int day, month, year;int sum = 0;int leap = 0;printf("请输入当前的年月和日:");scanf("%d,%d,%d", &year, &month, &day);printf("year = %d , month = %d, day = %d\n", year, month, day);// 明显循环带选择的往往使用switch语句进行处理,根据某一个变量判断可取的值但是值也有限优先考虑switch语句switch (month) {case 1:printf("一月份\n");sum = 0; break;case 2:printf("二月份\n"); sum = 31;break;case 3:printf("三月份\n"); sum = 58; break;case 4:printf("四月份\n"); sum = 90; break;case 5:printf("五月份\n"); sum = 120; break;case 6:printf("六月份\n"); sum = 150;break;case 7:printf("七月份\n"); sum = 180; break;case 8:printf("八月份\n"); sum = 210; break;case 9:printf("九月份\n"); sum = 240; break;case 10:printf("十月份\n"); sum = 270; break;case 11:printf("十一月份\n"); sum = 300; break;case 12:printf("十二月份\n"); sum = 330; break;}// 判断是平年还是润年的代码if (year % 400 || (year % 4 == 0 && year % 100 != 0)) {leap = 1;}else {leap = 0;}if (leap == 1 && month > 2) {sum++;}sum = sum + day;printf("总天数是%d\n", sum);return 0;}

在这里插入图片描述eg5: 输入三个整数想,x,y,z,把这三个数从小到大输出
解题代码和思路

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg5: 输入三个整数想,x,y,z,把这三个数从小到大输出这个类型的题目还可以用冒泡排序进行处理
*/int main() {// 先找出最小的数然后进行比较int a = 15;int b = 20;int c = 8;int sum = a + b + c;int min, max, middle;//printf("%d\n", a < b ? a : b);min = (a < b ? a : b) < c ? (a < b ? a : b) : c;max = (a > b ? a : b) > c ? (a > b ? a : b) : c;middle = sum - (min + max);printf("Smallest %d\n", min);printf("Max %d\n", max);printf("Middle %d\n", middle);return 0;
}

在这里插入图片描述eg6: 使用*输出一个字母c
解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg6: 使用*输出一个字母c,注意要输出带弧度的图案可以使用二维数组进行输出
*/int main() {int m = 5;for (int i = 0; i < 5; i++) {printf("*");}printf("\n");for (int i = 0; i < m - 1; i++) {printf("*\n");}for (int i = 0; i < 5; i++) {printf("*");}printf("\n");return 0;
}

在这里插入图片描述eg7: 输出99乘法表

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg7:输出一个9*9的乘法口诀表
*/int main() {int i = 0;int j = 0;for (i = 0; i < 9; i++) { // i表示输出的是第几行for (j = 0; j < i+ 1; j++) { // j表示第几行中输出的数printf("%d * %d = %-2d  ", i, j, i * j);}printf("\n");}return 0;}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg7:输出一个9*9的乘法口诀表
*/int main() {int i = 10;int j = 0;for (i = 1; i <= 9; i++) { // i表示输出的是第几行for (j = 1;j <= i; j++) { // j表示第几行中输出的数printf("%d*%d=%-2d  ", i, j, i * j);}printf("\n");}return 0;}

在这里插入图片描述

  • eg8:斐波那楔数列古典问题(兔子生崽):
    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
  • 程序分析:兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21…,即下个月是上两个月之和(从第三个月开始)。

解题代码和思路

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg8:斐波那楔数列古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)程序分析:兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21....,即下个月是上两个月之和(从第三个月开始)。数学模型 ----> 程序
*/int main() {int a = 1;int b = 1;for (int i = 1; i <= 10; i++) {a = a + b;b = b + a;printf("%d,%d", a, b);}return 0;
}

在这里插入图片描述eg9:判断101-200之间的素数
1:质数,素数
大于1的整数中,只能被1和这个数本身整除的数
2:如何判断是否是素数
3:一次枚举出每个数

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*eg9:判断101-200之间的素数1:质数,素数大于1的整数中,只能被1和这个数本身整除的数2:如何判断是否是素数3:一次枚举出每个数
*/
// 函数的定义
int isPrimeNumber(int m) {int i;// 计算一个数的平方使用函数sqrt()使用sqrt需要使用math.h的包int k = (int)sqrt((double)m);for (i = 2; i <= k; i++) {// 判断是否能够整除,如果可以整除的话说明不是素数,切断break跳出if (m % i == 0) {break;}}if (i > k) {return 1;//printf("%d,是素数", m);}else {return 0;// 到这一步break被执行,说明不是素数; i < m;//	printf("%d,不是素数", m);}
}
int main() {// 函数的声明int isPrimeNumber(int m);int j;// for循环进行判断遍历循环101-200之间的数for (j = 101; j <= 200; j++) {if (isPrimeNumber(j)) {printf("%d  ", j);}}return 0;}

在这里插入图片描述eg10: 题目 -> 打印水仙花数:打印出所有的水仙花数,所谓的水仙花数是指一个三位数,其各位数字立方 和等于该数本身 例如:153是一个水仙花数,因为153 = 1的三次方 + 5 的三次方 + 3的三次方

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*题目 -> 打印水仙花数:打印出所有的水仙花数,所谓的水仙花数是指一个三位数,其各位数字立方和等于该数本身例如:153是一个水仙花数,因为153 = 1的三次方 + 5 的三次方 + 3的三次方
*/
int main() {// 分别表示个位,10位,和百位的数int x = 0, y = 0, z = 0;int i;// 将三位数的每一个位取出来for (i = 100; i <= 999; i++) {x = i % 10;// 获取位个数y = i / 10 % 10; // 获取十位数z = i / 100 % 10; // 获取百位数// 使用if进行判断if (i == (x * x * x + y * y * y + z * z * z)) {printf("%d 是水仙花数\n",i);}}return 0;
}

在这里插入图片描述eg11: 题目:将正数分解为质因数,例如:输入90,打印出90 = 2 * 3 * 3 * 5
程序分析:对n进行分解质因数,应该先找到一个最小的质因数K然后按照以下的步骤完成
1:如果这个是质数恰巧等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束另外打印出 即可
2:但n能被k整除,则打印输出k的值,并用n除以k的商,作为新的正整数n,重复执行第二步
3:如果n不能被k整除,则用k+1作为k的值,重复执行第一步

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*题目:将正数分解为质因数,例如:输入90,打印出90 = 2 * 3 * 3 * 5程序分析:对n进行分解质因数,应该先找到一个最小的质因数K然后按照以下的步骤完成1:如果这个是质数恰巧等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束另外打印出即可2:但n能被k整除,则打印输出k的值,并用n除以k的商,作为新的正整数n,重复执行第二步3:如果n不能被k整除,则用k+1作为k的值,重复执行第一步
*/
int main() {int m = 90;int i;for (i = 2; i <= m; i++) {while (m % i == 0) {printf("%d ", i);m = m / i;}}return 0;
}

在这里插入图片描述eg12: 题目:利用条件运算符来嵌套完成此题,学习成绩>= 90分的同学用A表示,60-89分的同学用B表示,60分以下的同学用C表示 程序分析:(a>b)?a:b 这是条件运输符的基本例子。

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*题目:利用条件运算符来嵌套完成此题,学习成绩>= 90分的同学用A表示,60-89分的同学用B表示,60分以下的同学用C表示程序分析:(a>b)?a:b 这是条件运输符的基本例子。
*/
int main() {int score = 50;char grade;grade = (score >= 90) ? 'A' : ((score >= 60) ? 'B' : 'C');printf("grade = % c\n", grade);return 0;
}

在这里插入图片描述**eg13:题目:输入两个正整数m和n,求取其最大的公约数和最小公倍数
1: 最小公倍数:两个数的积 / 最大公约数
2: 求最大公约数用辗转相除法(有名欧几里得算法)

例如需要求1997 和 615两个正整数的最大公约数,用欧几里得算法,是这样进行的
1997/615 =3(余152)
615 / 152 =4(余7)
152 / 7 = 21 (余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 /1 = 2 (余0)
至此,最大公约数为1
以除数和余数反复的做除法运算,当余数为0时,取当前算式除数位最大公约数,所以得出1997和615的最大公约数为1**

解题思路和代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>/*题目:输入两个正整数m和n,求取其最大的公约数和最小公倍数 1: 最小公倍数:两个数的积 / 最大公约数2: 求最大公约数用辗转相除法(有名欧几里得算法)例如需要求1997 和 615两个正整数的最大公约数,用欧几里得算法,是这样进行的1997/615 =3(余152)615 / 152 =4(余7)152 / 7 = 21 (余5)7 / 5 = 1 (余2)5 / 2 = 2 (余1)2 /1 = 2 (余0)至此,最大公约数为1以除数和余数反复的做除法运算,当余数为0时,取当前算式除数位最大公约数,所以得出1997和615的最大公约数为1*/
int main() {int a = 885;int b = 615;int r;r = a % b;while (r != 0) {a = b;b = r;r = a % b;}printf("所以最大公约数是:%d\n", b);return 0;}

在这里插入图片描述
持续更新中…

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

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

相关文章

十方影视后期“领进门”,成长与成就还得靠自身

在这个充满视觉冲击的时代&#xff0c;影视后期制作已经成为了一种炙手可热的艺术形式。而在这个领域&#xff0c;Adobe After Effects&#xff08;AE&#xff09;这款软件无疑是王者之一。十方影视后期作为十方教育科技旗下的艺术设计学科&#xff0c;不仅培养了数万名优秀的后…

【Regulatory Genomics】Part2 BPNet、DeepLIFT

文章目录 Deep learning at base-resolution reveals cis-regulatory motif syntaxproblemBPNet: predicting base-resolution profiles from DNA sequenceInterpreting the predictions of BPNet1 DeepLIFT2 TF-MoDISCO3 motif syntax derived TF cooperativity Experimental …

首发!动手学大模型应用开发教程来了

大模型正逐步成为信息世界的新革命力量&#xff0c;其通过强大的自然语言理解、自然语言生成能力&#xff0c;为开发者提供了新的、更强大的应用开发选择。随着国内外井喷式的大模型 API 服务开放&#xff0c;如何基于大模型 API 快速、便捷地开发具备更强能力、集成大模型的应…

微信小程序漏洞之accesskey泄露

更新时间&#xff1a;2023年09月08日09:42:52 1. Accesskey泄露漏洞 这篇文章里面都是以我个人的视角来进行的&#xff0c;因为一些原因&#xff0c;中间删了一些东西&#xff0c;肯定有很多不正确的地方&#xff0c;希望大家能理解&#xff0c;也能指正其中的错误。 在以前…

python安装pip install报错Could not fetch URL https://pypi.org/simple/pip/...更换镜像源

更换镜像源 一. 现象pycharm使用 pip install xxx安装包时&#xff0c;一直报错&#xff1a; 二. 原因&#xff1a;三. 解决办法&#xff1a;一. 临时使用二. 永久更改三. 永久更改1. Windowswindows环境下Windows&#xff08;示例win10&#xff09; 2. Linux or Mac3. Pycharm…

jQuery 【关于jQuery 、 jQuery简介、基础选择器、属性选择器、jQuery扩展】(一)-全面详解(学习总结---从入门到深化)

目录 关于jQuery jQuery简介 选择器之基础选择器(一) 选择器之基础选择器(二) 选择器之属性选择器(一) 选择器之属性选择器(二) 选择器之jQuery扩展(一) 选择器之jQuery扩展(二) 关于jQuery 现在是否还需要学习jQuery&#xff0c;毫无疑问到目前为止&#xff0c;我们仍然…

Excel-lookup函数核对两个表格的数据匹配

需求描述&#xff1a;把右侧表格里的成绩按照姓名匹配到左表中 D11函数为LOOKUP(1,0/($H$11:$H$26A11),I$11:I$26) 然后下拉赋值公式&#xff0c;那么得到的值就都是对应的

分享 8 个 4k 壁纸站点

今天分享 8 个 4k 壁纸站点&#xff0c;换换心情&#xff01; bz.zzzmh 网址&#xff1a;https://bz.zzzmh.cn/ 一个免费的极简壁纸网站。 可以在这里找到所有极简壁纸&#xff0c;不需要注册登录就可以下载&#xff0c;它不限制分类、尺寸&#xff0c;想要什么样的壁纸直接搜…

Python安装第三方库出错完美解决方法

错误 Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distribution found for PILTry to run this command from the system terminal. Make sure that you use the correct version of pip installed for your Pyth…

VSCode 使用CMakePreset找不到cl.exe编译器的问题

在用vscode开发c项目的时候&#xff0c;使用预先配置的CMakePresets.json可以把一些特定的cmake选项固定下来&#xff0c;在配置时直接使用 "cmake --config --preset presetname"就可以进行配置&#xff0c;免去在命令行输入过多的配置参数。 但是在vscode中&#…

xstream实现xml和java bean 互相转换

目录 pom引用java bean 类XML 转换工具类测试类执行结果注意问题 JAXB方式见&#xff1a; JAXB实现XML和Bean相互转换 Java中实现XML和Bean的转换的方式或插件有以下几种&#xff1a; JAXB&#xff08;Java Architecture for XML Binding&#xff09;&#xff1a;JAXB是Java …

EasyExcel入门使用教程

文章目录 简介一、工程创建&#x1f391;二、读操作&#x1f38a;二、写操作&#x1f384;总结 简介 数据导入导出意义 后台管理系统是管理、处理企业业务数据的重要工具&#xff0c;在这样的系统中&#xff0c;数据的导入和导出功能是非常重要的&#xff0c;其主要意义包括以下…