![](https://img-blog.csdnimg.cn/20200316131355922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C
文章平均质量分 56
C语言基础、C语言小游戏、、、
濯一一
这个作者很懒,什么都没留下…
展开
-
C语言之 goto语句怎么了?
goto语句怎么了?为什么说goto的不可以随意使用?用goto怎么不好了?原创 2022-10-06 21:07:36 · 4245 阅读 · 1 评论 -
C语言:求(1-1/3+1/5-1/7+1/9-1/11…)*4 的值(while循环)
问题:编写一个程序实现此功能:计算 (1-1/3+1/5-1/7+1/9-1/11…)*4 的值相关知识:while循环代码实现:# include <stdio.h>int main(void){ int i = 1; int j = 1; double sum = 0; //结果肯定是小数, 所以要定义成double或float型 while (1.0/i > 1e-6) /*当1/i小于10的-6次方时停止循环。这个循环条件是自己原创 2021-04-22 10:00:20 · 10784 阅读 · 1 评论 -
C语言:选择结构 & 循环结构 的总结
1、常用的编程结构C语言中常用的编程结构有三种(其它编程语言也是如此),它们分别是:顺序结构:代码从前往后依次执行,没有任何“拐弯抹角”,不跳过任何一条语句,所有的语句都会被执行到。 选择结构:也叫分支结构。代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。 循环结构:程序会重新执行同一段代码,直到条件不再满足,或者遇到强行跳出语句(break 关键字)。2、选择结构选择结构(分支结构)涉及到的关键字包括 if、else、switch、case、...原创 2021-04-22 09:50:54 · 1545 阅读 · 0 评论 -
C语言:for循环用法 完全攻略
for循环for 循环语句的一般形式为:for (表达式1; 表达式2; 表达式3){ 语句;}注意:1) 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。2)for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属...原创 2021-04-22 09:33:54 · 1482 阅读 · 0 评论 -
C语言:无论是 for 或 while 循环,为什么建议使用半开半闭的呢?
前言回顾:C语言:求 1+2+3+…+100 的总和(for循环 各程序如何执行?)从功能上讲,for(i=1; i<=100;++i)完全可以写成for(i=1; i<101; ++i),而且建议大家尽量使用这种写法。也就是说,循环语句的循环条件尽量写成半开半闭的,不管是 for 循环还是 while 循环。for(i=1; i<101; ++i)实际上是 1≤i<101,是半开半闭的;而for(i=1; i<=100; ++i)实际上是 1≤i≤100,是全闭的。那原创 2021-04-22 09:19:50 · 539 阅读 · 1 评论 -
C语言:求 1+2+3+…+100 的总和(for循环 各程序如何执行?)
问题:for循环:求 1+2+3+…+100 的总和代码实现:# include <stdio.h>int main(void){int i;int sum = 0; //sum的英文意思是“总和”for (i=1; i<=100; ++i) //++是自加的意思, ++i相当于i = i + 1{sum = sum + i; /*等价于sum += i;但是不建议这么写, 因为sum = sum + i看起来更清楚、更舒服*/}printf("sum =.原创 2021-04-22 09:16:05 · 52101 阅读 · 2 评论 -
C语言:输出1~1000 之间所有的完全平方数
解决问题编写程序,输出 1~1000 之间所有的完全平方数。代码实现# include <stdio.h># include <math.h> //要用sqrt()int main(void){int i; //循环变量int x; //存储每个数的二次方根for (i=1; i<1000; ++i){x = sqrt(i); /*如果i不是完全平方数, 那么sqrt(i)肯定是小数, 而i是int型, 所以x是sqrt(i)取整后的值, ..原创 2021-04-22 09:04:30 · 10803 阅读 · 1 评论 -
C语言:求1 ~100之间所有能被 3 整除的数之和(for 和 if 嵌套)
解决问题for 和 if 的嵌套使用。求 1 到 100 之间所有能被 3 整除的数之和。代码实现# include <stdio.h>int main(void){int i;int sum = 0;for (i=3; i<100; i+=3){sum = sum +i;}printf("sum = %d\n", sum);return 0;}输出结果:sum = 1683知识拓展:如果不用 if,这个程序能不能写出来?.原创 2021-04-22 09:00:12 · 37410 阅读 · 6 评论 -
C语言:求 1! + 2! + 3! + ... + n!(for循环)
解决问题C语言利用 for循环:求 1! + 2! + 3! + ... + n!代码实现# include <stdio.h>int main(void){ int n = 0; int i = 0; int m = 1; int sum=0; printf("请输入n的值:"); scanf("%d", &n); for (i=1; i<=n; ++i) { m = m * i;原创 2023-03-28 15:49:52 · 72147 阅读 · 22 评论 -
C语言:scanf() 格式控制符汇总
scanf() 格式控制符汇总格式控制符 说明 %c 读取一个单一的字符 %hd、%d、%ld 读取一个十进制整数,并分别赋值给 short、int、long 类型 %ho、%o、%lo 读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 %hx、%x、%lx 读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 %hu、%u、%lu 读取一个无符号整数,并分别赋值给 un原创 2021-04-22 08:45:38 · 2707 阅读 · 0 评论 -
C语言:通过指针传递参数
#include<stdio.h>void swap(int *a,int *b); //声明函数int main(){int i=5,j=10; //初始化整数...原创 2019-04-30 17:20:54 · 3588 阅读 · 1 评论 -
C语言:enum(枚举)
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:#define MON 1 #define TUE 2 #define WED 3 #define THU 4 #defin...原创 2020-03-23 15:38:46 · 963 阅读 · 0 评论 -
C语言:获取开机时间
获取开机时间要用到 GetTickCount() 这个 API,功能是获取重系统开始到运行时的时间。代码如下:#include<stdio.h> #include<windows.h> int main() { DWORD k = GetTickCount(); int s = k/1000; int min = 0, h = 0; if...原创 2019-06-17 19:00:58 · 1029 阅读 · 0 评论 -
C语言:定时关机
写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机。system()命令代码实现:#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { char cmd[20]="shutdown -s -t "; char t[5]="0...原创 2019-06-17 18:54:03 · 792 阅读 · 0 评论 -
C语言:爱因斯坦的数学题
问题:爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在 1~N 内,有多少个数能满足?问题分析用变量x表示阶梯数,则x 应满足:若每步跨2阶,则最后剩1阶 -- x%2=1; 若每步跨3阶,则最后剩2阶 -- x%3=2; 若每步...原创 2019-06-17 18:34:32 · 8654 阅读 · 0 评论 -
C语言:获取开机时间
获取开机时间要用到 GetTickCount() 这个 API,功能是获取重系统开始到运行时的时间。代码如下:#include<stdio.h> #include<windows.h> int main() { DWORD k = GetTickCount(); int s = k/1000; int min = 0, h = 0; if (s...原创 2019-05-31 21:57:12 · 1159 阅读 · 0 评论 -
C语言:马克思手稿中的数学题
问题:马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,他们在同一家饭馆吃饭,总共花了50先令。已知每个男人吃饭需要花3先令,每个女人吃饭需要花2先令,每个小孩吃饭需要花1先令,请编程求出男人、女人和小孩各有几人。分析:根据该问题的描述,可将该问题抽象为一个不定方程组。设变量x、y和z分别代表男人、女人和小孩,则由题目的要求,可得到如下的方程组:其中方程 (1) ...原创 2019-05-31 19:24:14 · 12760 阅读 · 0 评论 -
C语言:定时关机小程序
代码如下:#include<stdio.h> #include<string.h> #include<stdlib.h> void main() { char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system("title C语言关机程序"); //设置cmd窗口标题...原创 2019-05-31 19:14:48 · 438 阅读 · 0 评论 -
C语言:猜拳游戏(电脑对决)
分析:1)首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。接下来接收玩家输入:scanf("%c%*c",&gamer);注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要跳过,以免影响下次输入。Scanf()函数的格式控制字符串个数可以多于...原创 2019-05-31 19:06:30 · 1690 阅读 · 1 评论 -
C语言:学生信息管理系统演示和说明(密码版)
在上两篇文章中,我们演示了文件版和数据结构版的学生信息管理系统,最终都将学生信息存储到文件中。不过,这些数据并不安全,任何人都可以查看和修改。我们有必要增强程序的安全性,对学生信息进行加密,用户只有输入正确的密码才能查看和使用学生信息。我们不妨将该版本的学生管理系统称为密码版。密码版的学生管理系统和文件版、数据结构版的学生管理系统大部分操作都相同,只是增加了与密码相关的选项。第一次运行软件,会...原创 2019-05-19 20:08:16 · 4218 阅读 · 8 评论 -
C语言:学生信息管理系统演示和说明(数据结构版)
文件版的学生管理系统https://blog.csdn.net/weixin_44015669/article/details/90346621,将学生信息保存在文件中,重点是如何对文件进行增删改查操作,能够加深大家对文件操作的理解。而数据结构版的学生管理系统重点是维护链表,能够将大家学到的数据结构的知识运用到实际中。演示程序下载地址:http://pan.baidu.com/s/1dDS5WI...原创 2019-05-19 20:05:15 · 1601 阅读 · 1 评论 -
C语言:扫雷游戏演示和说明
我们提供给大家的扫雷游戏,不要求大家精通 C 语言,也不会涉及到指针的使用,只需要学会以下几个知识点即可:会使用变量(int、char)和二维数组; 能够懂得函数的声明和使用; 掌握 C 语言的分支结构(if-else 和 switch 语句)和循环结构(while 和 fo() 循环);设计扫雷游戏的主要目的是让大家夯实 C 语言基础,训练编程思维,培养解决问题的思路,领略多姿多彩的 ...原创 2019-05-19 19:58:36 · 1163 阅读 · 0 评论 -
C语言:2048游戏演示和说明
2048游戏是风靡一时的小游戏,我们提供的2048小游戏不依赖 TC 环境,不依赖任何第三方库,可以在 VS、CodeBlocks、DEV C++ 等常见 IDE中编译通过。今提供给大家的 2048 小游戏,不要求大家精通 C 语言,也不会涉及到指针的使用,只需要学会以下几个知识点即可:会使用变量(int、char)和二维数组; 能够懂得函数的声明和使用; 掌握 C 语言的分支结构(if...原创 2019-05-19 19:33:55 · 2161 阅读 · 1 评论 -
C语言:初学者1--求某一年的某一月有多少天
从键盘输入年号和月号,求这一年的这一月共有多少天。分析这个问题需要考虑闰年问题,因为二月份的天数与闰年有关。闰年的判断依据是:若某年能被4整除,但不能被100整除,则这一年是闰年;若某年能被400整除,则这一年也是闰年。请考虑:闰年如何表达?本题13个分支(比1年12个月共需12个分支多1),编程可使用的多分支结构有哪些?else…if、if…else的嵌套和switch使用哪一个最为简...原创 2019-05-20 17:28:58 · 3015 阅读 · 0 评论 -
十万个?是什么意思?-1:C语言中 -> 是什么意思?
问题1:C语言中 -> 是什么意思?->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,假设我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。例如:struct Data{int a,b,c;};/*定义结构体*/struct D...原创 2019-12-07 11:30:16 · 707 阅读 · 0 评论 -
C语言:输入两个数,求最小公倍数
#include<stdio.h> int main() { int a,b,temp, i; printf("请输入a和b的值:"); scanf("%d%d", &a, &b); if(a<b) //比较大小,使得a中存储大数,b中存储小数 { temp = a; a = b; b= temp; }...原创 2019-05-26 17:44:11 · 8728 阅读 · 1 评论 -
C语言:输出 2 的 N 次幂:1, 2, 4, 8, .. 一直到 2^N
输出 2 的 N 次幂:1, 2, 4, 8, .. 一直到 2^N。设N=16,代码如下:#include <stdio.h> #define N 16 int main(void) { int n; // 记录当前指数 int val = 1; // 保存 2^n 的结果 printf("\t n \t 2^n\n"); printf("\t====...原创 2019-05-26 17:49:33 · 3262 阅读 · 0 评论 -
C语言:求高次方数的尾数
分析 许多初学者看到本题最容易想到的方法就是:将13累乘13次后截取最后三位即可。但是计算机中存储的整数有一定的范围,超出某范围将不能正确表示,所以用这种算法不可能得到正确的结果。实际上,题目仅要求后三位的值,完全没有必要把13的13次方完全求出来。算法设计手工计算13的13次方的步骤如下: 研究乘法的规律会发现:乘积的最后三位的值只与乘数和被乘数的后三...原创 2019-05-26 18:01:04 · 5936 阅读 · 3 评论 -
C语言:三色球问题:12个中3红3白6黑,取8个求共有多少种可能
问题:在一个口袋里放有12个球,已知其中3个红球,3个白球,6个黑球,现从中任取8个,问共有多少种可能的颜色搭配?分析:根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个。已知12个球中有3个红球,3个白球,6个黑球,因此,m的取值范围为[0, 3],n的取值范围因此为[0, 3],黑球的个数小于等于6,即 8 - m - n ≤ 6。推理:循环结构...原创 2019-05-26 18:11:24 · 15872 阅读 · 4 评论 -
C语言:递归解决年龄问题(精细版)
问题:有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3人多少岁,他说比第2个人大2岁。问第2个人多少岁,他说比第1个人大2岁。最后问第1个人,他说他是10岁。编写程序,当输入第几个人时求出其对应的年龄。分析:该问题是一个递归问题。要求第5个人的年龄,必须先知道第4个人的年龄,显然第4个人的年龄也是未知的,但可以由第3个人的年龄推算...原创 2019-05-26 18:30:14 · 5501 阅读 · 0 评论 -
C语言:求一个数的平方根
正数n的平方根可以通过计算一系列近似值来获得,每个近似值都比前一个更加接近准确值。第一个近似值是1,接下来的近似值则通过下面的公式来获得。编写一个程序,读入一个值,计算并打印出它的平方根。如果你将所有的近似值都打印出来,你会发现这种方法获得准确结果的速度有多快。原则上,这种计算可以永远进行下去,它会不断产生更加精确的结果。但在实际中,由于浮点变量的精度限制,程序无法一直计算下去。当某个近似值与前...原创 2019-05-31 18:55:01 · 26549 阅读 · 0 评论 -
C语言:求x的y次方的值(pow()函数)
pow语法:double pow(double x,double y);例:求 2 的 5次方,其代码如下:#include <stdio.h> #include <math.h> int main() { double x = 2, y = 5; //为x,y变量(双精度数)赋初值 double result = p...原创 2019-06-17 17:16:03 · 12323 阅读 · 0 评论 -
C语言:什么是编译器?如何选择IDE??
在Windows下,可执行程序(Executable Program)大部分是 .exe 程序,它是一系列计算机指令和数据的集合。这些指令都是二进制形式的,CPU可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。计算机发展初期,程序员就是使用这些二进制形式的CPU指令来编写程序的。直接使用CPU指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要...原创 2019-05-21 20:52:25 · 1487 阅读 · 0 评论 -
C语言:跳出循环(break,continue)
使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。break关键字当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。使用 while 循环计算1加到100的值: #include <...原创 2019-05-20 18:56:26 · 10029 阅读 · 0 评论 -
C语言:sizeof是一个运算符吗?
sizeof运算符足c语言提供的一个用于返回变量或类型修饰符字节长度的运算符。sizeof的一般形式为: sizeof(名称);例如: void main(){ int a; a=10; printf("'d, sd\n",sizeof (a),sizof (int));} 不同类型的数据在计算机中所占的字节...原创 2019-05-01 17:31:27 · 3122 阅读 · 1 评论 -
C语言:三目运算符 “?”号
三目运算符的表示一般为“?:”,该运算符连接3个对象,是C语言中唯一一个三目运算符,又称条件运算符。它的一般形式如下:表达式a?表达式b:表达式c其执行步骤如下:(1)计算表达式a的值。(2)如果表达式a的值为1,则执行表达式b。(3)如果表达式b的值为0,则执行表达式c。注意:当有多个三目运算符时,按从右至左的顺序运算。例如,下面两个表达式是等价的:a<b...原创 2019-05-01 17:05:30 · 18698 阅读 · 4 评论 -
C语言:goto循环语句
goto语句构成循环在介绍C语言的循环结构之前,先介绍一种采用非结构化程序设计的方式来构成的循环,即使用无条件转移语句goto语句。它的一般格式如下:goto语句标号:说明: goto语句把程序的控制流转移到在goto语句中指定的标号之后的第一条语句。标号是跟有“:”的标识符,它必须与引用它的goto语句在同一个函数中,但可以不在同一个循环层中。标号的命名规则与变量名相同,即由字母、...原创 2019-04-17 22:31:17 · 2807 阅读 · 0 评论 -
C语言:鸡兔同笼(随机输入头数和脚数)
#include<stdio.h>int main(){int head,foot,chicken,rabbit; printf("鸡兔同笼\n"); printf("请输入头数:"); scanf("%d",&head); printf("请输入脚数"); scanf("%d",&foot); rabbit=(...原创 2019-04-14 20:57:26 · 10988 阅读 · 1 评论 -
C语言:求e的值。 e=1+1/1! +1/2! +1/3! ...+1/n!(for循环)
用for循环,计算前50项。方法:应用for循环#include<stdio.h>void main(){ int i,n; double sum =1,t=1; printf("输入n:\n"); scanf("%d",&n); for(i=1;i<=n;i++) { t=t*i; ...原创 2019-04-16 22:17:54 · 67838 阅读 · 18 评论 -
C语言:求1-3+5-7 +--99 + 101的值。(两种方法)
方法1: (1 +5+9+13+17 +.... +101)-(3+7 +11 +15 +....+99)程序源代码:#include<stdio.h>void main(){ int i,j,sum1=0,sum2=0,sum; for(i=1;i<=101;i+=4) sum1 += i; for(j=3;j<=99;j+...原创 2019-04-16 21:24:59 · 68884 阅读 · 4 评论