C and C++
C 与 C++ 学习记录
Bennett 黄柏禧
止于至善
展开
-
贪食蛇
snake.c#include"snake.h"int main(void) { put_money(); output(); char move = 'd'; while (1) { if (kbhit()) scanf("%c", &move); switch (move) { case 'w':snakeMove(0,-1); brea原创 2017-02-04 17:05:06 · 395 阅读 · 0 评论 -
getchar在for循环初始化参数下的错误
for (go_on = getchar(); go_on <= '9' && go_on >= '0'; go_on = getchar())问题:for的第一个参数一定会执行,执行完再验证是否符合第二个参数的条件,因此不管是否能执行循环体,每次都能被getchar从输入流中吃掉一个字符。 解决方法:利用ungetc()函数。原型:int ungetc(char c, FILE *stream)原创 2017-01-17 17:08:30 · 472 阅读 · 1 评论 -
大一上期末
1.记住的ASCII码:空字符:0 空格:32 数字0 - 9 : 48 - 57 A - B : 65 - 90 a - b:97 - 1222.优先级1)++(后缀) –(后缀) () [] {} . -> 2)++(前缀) –(前缀) - + ~ * & size of 一元 3)算术运算符 4)关系运算符 5)位运算符 6)逻辑运原创 2017-01-08 23:49:37 · 287 阅读 · 0 评论 -
float 的二进制表示
整数怎样转2进制,小数怎样转2进制就不说了。 12.5: 1)整数部分12,二进制为1100; 小数部分0.5, 二进制是.1,先把他们连起来,从第一个1数起取24位(后面补0): 1100.10000000000000000000 这部分是有效数字。(把小数点前后两部分连起来再取掉头前的1,就是尾数) 2)把小数点移到第一个1的后面,需要左移3位, 加上偏移量127:127+3=130,二原创 2017-01-08 21:57:41 · 3728 阅读 · 0 评论 -
判断一个数是不是素数
思路1):因此判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。思路2):另外判断方法还可以简化。m不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定1转载 2017-01-07 21:07:52 · 421 阅读 · 0 评论 -
程设作业 2016年12月23日15:52:33
#include<stdio.h>int max = 0;int count(int letter[26]) { int word = 0; char ch, pre; // pre 表示前一个字母 while ((ch = getchar()) != EOF) { //默认首个输入非空白 if (ch != ' ' && ch != '\n') { // 不可写成(ch原创 2016-12-23 15:59:39 · 481 阅读 · 0 评论 -
数组作为函数参数
数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。数组元素作函数实参数组元素就是下标变量,它与普通变量并无区别。 因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。数组名作为函数参数用数组名作函数参数与用数组元素作实参有几点不同。转载 2016-11-15 21:08:09 · 404 阅读 · 0 评论 -
debug2016年11月08日14:20:18
1.每次循环时,注意是否需要刷新变量 2.输入字符时,不管scanf还是getchar,都要时时小心是否手动键入’\n’int main(void) { int N, i, t = 0, l; char a[52], message, ch; scanf("%d", &N); while (N--) { while((ch = getchar())原创 2016-11-15 20:10:31 · 346 阅读 · 0 评论 -
ctype.h头文件
1.字符测试函数 函数名 如果是下列参数时,返回值为真 isalnum() 字母数字(字母或数字) isalpha() 字母 isblank() 标准的空白字符 iscntrl() 控制字符,如Ctrl+B isdigit() 数字 isgraph() 除空格外的任意可打印字符 islower() 小写字母 isprint() 可原创 2016-11-10 13:22:56 · 630 阅读 · 0 评论 -
c primer plus 笔记
1.sizeof和strlen都用%zd转换说明,strlen不计入字符串末尾的\0,sizeof要计入2.strlen要使用string.h头文件,用于给出字符串中的字符长度3.strlen和sizeof用法:strlen(name) sizeof(name)或sizeof(关键字)或sizeof(数字), 一般要加括号4.c预处理器:形式:#define 符号常量名(通常全大写英文) 符号常量值原创 2016-11-06 13:57:36 · 1056 阅读 · 0 评论 -
作业的debug反思(求亚军)
先写上两个错误的代码第一个#include <stdio.h>int main (void){ int n; int a[n]; //** n未输入就用来创造数组,未初始化的n是一个很大的数,会导致爆栈,所以程序直接终止** int i,t; scanf("%d",&n); for (i = 0; i < n; ++i) { s原创 2016-10-18 15:30:44 · 490 阅读 · 0 评论 -
作业debug思考
#include <stdio.h> int main(void){ int a,b,t,c; scanf("%d %d",&a,&b); if (a < b) { t = a; a = b; b = t; } //c = 1; 此处必须给c赋初始值,否则会被随意赋值0而无法进行循环,教训原创 2016-10-17 14:31:52 · 415 阅读 · 0 评论 -
switch的用法
#include <stdio.h>int main(void){ int val; printf("请输入您要进入的楼层:"); scanf("%d",&val); switch (val) { case 1: **此处应该为冒号而不是分号** printf("1层开\n"); //原创 2016-10-09 09:23:00 · 784 阅读 · 0 评论 -
do..while..一些注意
利用do..while…进行多次循环#include <stdio.h>#include <math.h>int main (void){ double a, b, c; double delta; double x1, x2; char ch; do { printf("请输入一元二次方程的三个系数:\n"); //prin原创 2016-10-08 13:21:39 · 506 阅读 · 0 评论 -
c++中的const函數
對於累中的const函數,該函數中假如本類的成員(包括繼承得到的成員)要調用其他函數,必須調用同樣是const的函數。假如並不是本類的對象,則沒有這種限定。原创 2017-04-15 22:16:31 · 214 阅读 · 0 评论 -
c++
1. 构造函数定义类时要初始化构造函数的参数的值 例:Complex.hppclass Complex { public: Complex(double real = 0, double imaginary = 0); Complex add(const Complex &right); Complex subtract(const Com原创 2017-02-26 23:43:47 · 280 阅读 · 0 评论 -
c++作業 ----- Binary Tree
題目要求Descriptionbinary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child.Three Constructor:creat a tree by copy. c原创 2017-04-23 12:10:53 · 1152 阅读 · 0 评论 -
c++primer 課後題 ----- 輸入輸出流
問題:編寫程序,將來自一個文件中的行保存在一個vector中, 然後視同一個istringstream從vector中讀取數據源素, 每次讀取一個單詞。答案 1 #include<iostream> 2 #include<fstream> 3 #include<sstrea原创 2017-05-14 01:03:20 · 224 阅读 · 0 评论 -
lambda表達式
lambda转载 2017-06-03 10:06:12 · 191 阅读 · 0 评论 -
test
#include<iostream>#include<iterator>#include<algorithm>#include<vector>using namespace std;int main() {vector<int> vec;auto it = back_insert(vec);fill_n(back_insert(vec), 10, 0);for(auto c : vec原创 2017-06-08 10:20:15 · 161 阅读 · 0 评论 -
关于数据结构中对=的重载
说明: 今天在自己编写的数据结构(链式栈)的时候,在重载=时遇到了一些错误,因此总结一下,给出一个较为标准的重载代码。其他的数据结构可以类比编写。基本思路(设等号左边的栈为A, 等号右边的栈为B):先复制一份B的副本,再清空A,最后把A的top指针指向副本B的指针 注意的问题A栈是否为空, B栈是否为空,需要判断代码是否满足连等, 需要返回值代码是否满足x=x, 需要注意代码顺序代码示例S原创 2017-09-28 14:27:49 · 510 阅读 · 0 评论