首页
学习
活动
专区
工具
TVP
发布

海天一树

专栏作者
245
文章
276724
阅读量
59
订阅数
信息学竞赛,学C还是C++?
先看C++和C的关系。C++是在C语言的基础上产生的,C++除了兼容C语言,还增加了标准模板库和面向对象两大特性。所谓标准模板库,就是C++中提供了一些好用的工具供程序员使用,而C语言不提供这些工具。面向对象才是C++和C语言的本质区别。C语言的重点是算法和数据结构,C++的重点是面向对象。
海天一树
2019-07-10
2.6K0
小朋友学C语言(34):main函数的参数
C/C++中的main()函数,可以带形式参数,也可以不带形式参数。这两种形式分别为: 1)int main() 2)int main(int argc, char *argv[]) 或者 int main(int argc, char **argv) 因为main()函数通常是由操作系统调用的,所以平时写程序,基本上不用带参数。但是从学习的角度来看,了解一下参数也是有益处的。 第一个参数,argc是argument count的缩写,表示“参数个数”。 第二个参数,argv[]是argument vect
海天一树
2018-04-17
1.1K0
小朋友学C语言(33):三目运算符
三目运算符(ternary operator),又称条件运算符、三元运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符。 三目运算符的形式为: <表达式1> ?
海天一树
2018-04-17
1.2K0
小朋友学C语言(31):递归解决汉诺塔
(一)汉诺塔介绍 汉诺塔(Hanoi Tower)问题是源于印度一个古老传说: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。 考虑一下把64片金片
海天一树
2018-04-17
9800
小朋友学C语言(30):局部变量和全局变量
(一)局部变量 在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用局部变量的实例。在这里,所有的变量 a、b 和 c 是 main() 函数的局部变量。 例1: #include <stdio.h> int main () { /* 局部变量声明 */ int a, b; int c; /* 实际初始化 */ a = 5; b = 10; c = a + b; printf ("a = %d, b =
海天一树
2018-04-17
9900
小朋友学C语言(29):switch case语句
switch case语句与if elseif语句类似,都是从多个选择条件里选取一个来执行。 (一)先来看一个if elseif程序 #include <stdio.h> int main() { int number; printf("Please input an integer between 1~7: "); scanf("%d", &number); printf("Today is "); if(1 == number) { p
海天一树
2018-04-17
9700
小朋友学C语言(28):指针
(一)内存地址 #include <stdio.h> int main() { int var1 = 20; printf("变量var1的值为:%d\n", var1); p
海天一树
2018-04-17
9370
小朋友学C语言(27):选择排序
(一)基本原理(由小到大): 如果有n个数,需要比较n-1轮: 第1轮,将n个数中最小的数与a[0]对换,当然若a[0]就是最小的数则不用对换。 第2轮,将a[1]到a[n-1]中最小的数与a[1]对换,当然若a[1]就是最小的数则不用对换。 …… 第n-1轮,将最后的两个数,即a[n-2]与a[n-1]比较,若a[n-2] > a[n-1],则对换。至此,排序完毕。 (二)例子 例1:a[] = {5, 1, 2, 3, 4} 分析 :需要比较n - 1 = 4轮。 第1轮,a[1]=1是5个元素中最小的
海天一树
2018-04-17
9990
小朋友学C语言(26):冒泡排序
(一)基本原理(由小到大): 将相邻两个数比较,将大的调到后头。如果有n个数,则要进行n-1趟比较。 在第1趟中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。 image.png 上图中有5个数,要进行5 - 1 = 4趟比较。 第1趟,要进行n - 1 = 4次两两比较; 第2趟,要进行5 - 2 = 3次两两比较; 第3趟,要进行5 - 3 = 2次两两比较; 第4趟,要进行5 - 4 = 1次两两比较。 (二)代码实现 1 C语言实现 #include <stdio.h> // 打
海天一树
2018-04-17
1.1K0
小朋友学C语言(23):二进制与十进制之间的转换
在学本节之前,请先复习 小朋友学C语言(17):二进制 一、二进制转换为十进制的C语言代码 #include <stdio.h> #include <string.h> int binary2decimal(char str[]) { int sum = 0; int j = 1; int pos = strlen(str) - 1; for(; pos >= 0; pos--) { sum += (str[pos] - '0') * j;
海天一树
2018-04-17
1.4K0
小朋友学C语言(22):循环
C语言有三种循环方式,除了前面讲过的for循环外,还有while和do while两种形式。 (一)while循环 #include <stdio.h> int main() { int i = 3; while(i > 0) { i--; printf("Excute loop! After decrementing, i = %d\n", i); } return 0; } 运行结果: Excute loop! After decrement
海天一树
2018-04-17
1.1K0
小朋友学C语言(21):字符串
在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。 (一)下面是一个定义字符串的例子。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。 char str[ ] = {'H', 'e', 'l', 'l', 'o', '\0'}; 但是在算字符串的长度时,最后的空字符‘\0’不算在内。 验证程序: #include <stdio.h> #include <string.h> int main () { char str[]
海天一树
2018-04-17
9810
小朋友学C语言(20):数组
一、数组简介 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。 所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高
海天一树
2018-04-17
1K0
小朋友学C语言(19):字符和整数的关系
程序(一) #include <stdio.h> int main() { char ch = 'A'; printf("%c\n", ch); printf("%d\n", ch); printf("********************\n"); int num = 66; printf("%c\n", num); printf("%d\n", num); printf("********************\n"); ch
海天一树
2018-04-17
7560
小朋友学C语言(18):二进制
一、十进制与二进制 我们日常所用到的计数方式,是十进制(数字用0,1,2,3,4,5,6,7,8,9这十个数字来表示)。 十进制的进位规则是”逢十进一”。 比如零、一、二、三、四、五、六、七、八、九都是用一位数来表示。再进一的话,是十。十无法用1位数来表示,所以要”进一”,用两位数来表示,即10。 19进一是二十,无法以1X来表示,所以得用20来表示。 99进一是一百,无法用9X来表示,所以得用100来表示。 计算机用二进制(数字用0和1来表示)来存储数据。二进制的进位规则是“逢二进一”。 零用0来表
海天一树
2018-04-17
9810
小朋友学C语言(17):斐波那契数列的递归实现
什么是递归呢?先举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'" 这个例子里,故事内嵌套着故事,构成了递归。 动手编写程序: #include <stdio.h> int fibonacci(int n) { if(1 == n || 2 == n) { return
海天一树
2018-04-17
8800
小朋友学C语言(16):斐波那契数列的非递归实现
一、斐波那契简介 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于前两项之和。 二、非递归实现 动手编写程序: #include <stdio.h> int fibonacci(int n) { if(1 == n || 2 == n) {
海天一树
2018-04-17
9230
小朋友学C语言(15):“变量==常量”与“常量==变量”的区别
(一)编写程序 #include <stdio.h> int main() { int x = 10; if(x == 10) { printf("x equals 10\n"); } return 0; } 运行结果: x equals 10 (二)将x == 10改为10 == x #include <stdio.h> int main() { int x = 10; if(10 == x) { printf
海天一树
2018-04-17
1.1K0
小朋友学C语言(14):分苹果(小学奥数题)
题目 有两堆一样多的苹果,老师将第一堆苹果分给男生,每人4个,最后剩下6个。 老师又将第二堆苹果分给女生,每个5个,最后剩下5个。 已知男生比女生多1人。 求:女生有多少人?男生有多少人?苹果有多少个? 解法(一) 女生每人分5个苹果,最后剩下5个。假如女生的人数多1个(这样就跟男生数量一样多啦),那么苹果恰巧被分完。 这样问题就等价为: 一堆苹果,分给一组人。假如每个人分4个苹果,剩下6个苹果。假如每个人分5个苹果,恰巧分完。 这样,这组人的人数 = 剩下的苹果总数 / 每个人剩下的苹果个数 = 6 /
海天一树
2018-04-17
1.1K0
小朋友学C语言(13):逻辑运算符
逻辑运算符有三种,“&&”(逻辑与)、“||”(逻辑或)和“!”(逻辑非) (一)逻辑与&& “&&”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“&&”的运算结果才为“真”。只要有一个条件不成立,则结果为“假”。 1 && 1 = 1 1 && 0 = 0 0 && 1 = 0 0 && 0 = 0 验证程序: #include <stdio.h> int main() { int x = 50; if(x >= 0 && x <= 100) { pri
海天一树
2018-04-17
6660
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档