c语言

C语言学习笔记

白昼怎懂夜的黑 提交于 2020-03-05 23:14:30
大学时候学习了点C语言,本就学得浅显,现在也忘得差不多。只是记得几个循环,简单的输入输出,现在重新系统学习C语言,这么多年的失败学习经验告诉我,学习某个方面的东西,一定要系统且要注重细节,即掌握总分总的知识架构,而且要反复多次学习。 这次学习的内容有:数据类型,数组,指针,函数,文件,结构体和共用体等,后面关于C语言的知识会随时补充。 另需注意C语言编程格式: 一.数据类型 1.常量和变量 2.类型转换 二.数据输入输出 来源: CSDN 作者: 不愿当码农 链接: https://blog.csdn.net/weixin_45433525/article/details/104672195

C语言格式化输出

大城市里の小女人 提交于 2020-03-05 21:28:24
1、%d 十进制有符号整数int。 2、%u 十进制无符号整数。 3、%ld 输出long整数 。 4、%s 字符串。 5、%c 单个字符。 6、%p 指针的值。 7、%e 指数形式的浮点数。 8、%x, %X 无符号以十六进制表示的整数。 9、%0 无符号以八进制表示的整数。 10、%g 自动选择合适的表示法。 11、%lld 输出long long整数 。 在32位编译器上,int=long=32bit;long long=64bit。 来源: https://www.cnblogs.com/ruigelwang/p/12422610.html

分糖果 C语言

两盒软妹~` 提交于 2020-03-05 18:29:25
排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。 重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果。注意,就算我们手中的剩下糖果数不够(不比前一次发出的糖果多),这些糖果也会全部发给当前的小朋友。 返回一个长度为 num_people、元素之和为 candies 的数组,以表示糖果的最终分发情况(即 ans[i] 表示第 i 个小朋友分到的糖果数)。 示例 1: 输入:candies = 7, num_people = 4 输出:[1,2,3,1] 解释: 第一次,ans[0] += 1,数组变为 [1,0,0,0]。 第二次,ans[1] += 2,数组变为 [1,2,0,0]。 第三次,ans[2] += 3,数组变为 [1,2,3,0]。 第四次,ans[3] += 1(因为此时只剩下 1 颗糖果),最终数组变为 [1,2,3,1]。 来源:力扣(LeetCode) 链接:https://leetcode-cn

C语言加减乘除

落花浮王杯 提交于 2020-03-05 18:21:18
#define _CRT_SECURE_NO_WARNINGS #include <cstdlib> #include <stdio.h> #include <string.h> int main() { float a, b, c; char str[100]; //输入的字符串 char preStr[100];//运算符前的字符串 char endStr[100];//运算符后面的字符串 //scanf("%f%c%f", &a, &x, &b); printf("请输入字符串:"); scanf("%s", str); /*输入参数是已经定义好的“字符数组名”, 不用加&, 因为在C语言中数组名就代表该数组的起始地址*/ int index = -1; for (int i = 0; i < strlen(str); i++)//确定运算符的位置 { switch (str[i]) { case'+':index = i; break; case'-':index = i; break; case'*':index = i; break; case'/':index = i; break; } if (index != -1) { break; } } for (int i = 0; i < index; i++)//遍历运算符前面的字符串 { preStr[i] =

C语言进阶_分支语句

拜拜、爱过 提交于 2020-03-05 09:39:48
  勇气是在压力之下展现出的优雅。 一.简介   C语言提供了两种分支语句可供选用,一是if.......else....类型,一种是Switch语句。两种语句都能根据条件判断结果执行不同的指令,且能进行替换,但也有诸多差异,下面详细介绍。 二.if语句与Switch语句   2.1if语句   if语句是一种逐个判断条件的分支语句,可以else关键字搭配使用,当条件满足时执行if语句所包含的命令,条件不满足执行与之配对的else语句所对应的命令。逻辑结构如下所示:     2.1.1需注意的是,与else配对的if关键字为该else关键字之前且离它最近的if。     2.1.2条件为0的情形分析       if(......),括号内的条件可为常量、宏、表达式等。       ①条件为boolean的0                ②条件为整型或字符型0的表达式         为了便于编译器检错,0建议写在表达式的右边,形如if(0==a),当比较符号'=='写错成‘=’时,表达式为if(0=a)此时编译器编译时会报错,而0卸载左边在这种情形下则不会报错。       ③条件为Float类型的0.0的比较表达式         因为Float类型的数据是一种不精确存储的数据,当我们给一个Float类型的变量赋值为0.0,它在计算机中的存储结果是偏离0一定值的数

C语言作业

雨燕双飞 提交于 2020-03-05 08:28:42
代码文件 存在问题:出错是让函数返回特殊的不属于有效范围内的值,当任何数都是有效的可能结果时,就分开返回 怎样返回? 强制转换,结果不一样 来源: https://www.cnblogs.com/liqinb/p/12418213.html

C语言-怎么找115资源

眉间皱痕 提交于 2020-03-04 22:21:54
C 语言的起源与发展 C 语言的开发 Dennis M. Ritchie Bell Labs/Lucent Technologies Murray Hill, NJ 07974 USA 摘要 C 编程语言是在 1970 年代早期作为初创的 Unix 操作系统的系统实现语言而设计的。起源于无类型的 BCPL 语言,它发展出了类型结构;它建立在一个小机器上、作为改善其贫乏的编程环境的工具,它现在已经成为占主导地位的语言之一。本文研讨它的演变。   注意: *Copyright 1993 Association for Computing Machinery, Inc. This electronic reprint made available by the author as a courtesy. For further publication rights contact ACM or the author. This article was presented at Second History of Programming Languages conference, Cambridge, Mass., April, 1993. It was then collected in the conference proceedings: History of Programming

C语言俄罗斯方块代码

扶醉桌前 提交于 2020-03-04 05:52:33
这是我用Xcode编写的俄罗斯方块,我目前就读大一,很多东西还没有学,比如多线程什么的,导致方块不能实现自主下降,只能自己按‘s’来实现下降,不过这都无所谓,但是不知道为什么程序运行不了,看了好久都没看出错在哪里,希望能够得到大神的求助!感谢! 头文件,我也不知道是不是都用得上 # include <stdio.h> # include <stdlib.h> # include <time.h> # include <curses.h> 全局变量 int i , j , a [ 25 ] [ 10 ] ; char l ; 生成界面,我用的二维数组是a[25][10],周围边框的值为2,一共有6种方块,每一类型的方块都用一个数字表示,当随机生成一个数字后,相应的方块的坐标值为1,其余为0,即空格,我还同时计算出来方块最上面最下面最左边最右边的坐标方便移动和判断 int * shengcheng ( int a [ ] [ 10 ] , int up ) { int n , m , min , max , b [ 6 ] = { 1 , 2 , 3 , 4 , 5 , 6 } , c [ 8 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } , d [ 6 ] , * p , flag = 0 , down ; srand ( ( int ) time (

#c语言学习笔记3

自作多情 提交于 2020-03-04 05:49:34
1.求两个数的最大公约数 辗转相除法 # include <stdio.h> int main ( ) { int m , n , r ; scanf ( "%d %d" , & m , & n ) ; while ( r != 0 ) { r = m % n ; m = n ; n = r ; } printf ( "最大公约数是%d" , m ) ; } 递归 # include <stdio.h> fun ( int m , int n ) { if ( m % n == 0 ) return n ; else return ( fun ( n , ( m % n ) ) ) ; } int main ( ) { int m , n , r ; scanf ( "%d%d" , & m , & n ) ; fun ( m , n ) ; printf ( "最大公约数是%d" , fun ( m , n ) ) ; } 2将数组a中的内容和数组b中的内容进行交换(数组一样大) # include <stdio.h> int main ( ) { int a [ 5 ] = { 11 , 22 , 33 , 44 , 55 } ; int b [ 5 ] = { 22 , 33 , 44 , 55 , 66 } ; int c [ 5 ] ; for ( int i = 0 ;

c语言到c++的升级

◇◆丶佛笑我妖孽 提交于 2020-03-04 05:15:46
C语言优点: 1.直接访问硬件 2.运行效率 3.移植性 C++优点: 1.良好复用性 2.良好维护性 3.良好扩展性 复用性:已开发好的代码可以在其他项目中直接使用(!=ctrl+c ctrl+v) 维护性:当程序出现问题,能够很快的查找出问题出现在哪一行代码 扩展性:当你添加新的功能时,不修改原来的代码,只添加新的代码 c++命名空间 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。在C++中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。比如,如果我们在自己的程序中定义了一个函数toupper(),这将重写标准库中的toupper()函数,这是因为这两个函数都是位于全局命名空间中的。命名冲突还会发生在一个程序中使用两个或者更多的第三方库的情况中。此时,很有可能,其中一个库中的名称和另外一个库中的名称是相同的,这样就冲突了。这种情况会经常发生在类的名称上。比如,我们在自己的程序中定义了一个Stack类,而我们程序中使用的某个库中也可能定义了一个同名的类,此时名称就冲突了。 Namespace 关键字的出现就是针对这种问题的。由于这种机制对于声明于其中的名称都进行了本地化,就使得相同的名称可以在不同的上下文中使用,而不会引起名称的冲突。或许命名空间最大的受益者就是C++中的标准库了