C++基础
文章平均质量分 78
ysuwood
赠人玫瑰,手有余香。
展开
-
最大乘积问题
【题目描述】今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积最大。同时,为了帮...原创 2019-11-27 16:09:02 · 401 阅读 · 0 评论 -
c++动态创建二维数组
编写函数CreateMatrix( int **a,int n, int m),生成一个n行m列的二维数组a,并将各个元素初始化为0。原创 2015-12-18 23:04:07 · 1095 阅读 · 0 评论 -
一道面试题:等概率随机数
题目:假设有两个函数 rand3()可以产生随机的0、1、2,rand5()可以产生随机的0、1、2、3、4,现在请你利用它编写一个函数rand7(),产生0~6的随机数。方法1:利用数组int rand7(){ int a[3][3]={ 0,1,2,3,4,5,6,7,8 }; int row,col; do { row = rand3();原创 2016-01-30 14:09:15 · 2692 阅读 · 1 评论 -
c语言static的作用
1、全局变量前的static作用:限制该全局变量的作用域到本文件结束。例如:下面3个文件,f1.cpp中的全局变量只能在f1.cpp中使用;f2.cpp使用的是f3.cpp中定义的全局变量a。//文件f1.cpp#include "stdio.h"static int a=1; //限定a的作用域:从这里到本文件结束void f2();void f3();void main()原创 2015-11-17 14:11:04 · 1433 阅读 · 0 评论 -
vc捕获matlab异常
vc和matlab混合编程,如果matlab函数处理不严谨,有可能会将inf、nan、null等传递给vc程序,造成程序出现异常。用try{ } catch{ } 来捕获这种异常,vc2005以后默认是捕获不到这种CPU异常。解决办法:项目属性->配置属性->C/C++->代码生成->启动C++异常->是,但有 SEH 异常 (/EHa)例如:#includeusing name原创 2015-12-24 22:07:37 · 1242 阅读 · 0 评论 -
C++的数组和指针
C++的指针使用很灵活,尤其是在和数组配合使用时。1. 数组元素在内存中是连续存放的,如char a[10]; 在内存是按照a[0]、a[1]、a[2]、...、a[9]顺序存放。数组名a代表了这个一维数组的起始地址,是个常量。 char *p=a; 在程序中p[i]和a[i]是等价的,p和a不同的是,p是指针变量,可以变。a和&a[0]是等价的。 在函数的形参中,原创 2015-11-04 15:41:19 · 1260 阅读 · 2 评论 -
c语言递归调用:买啤酒
题目:两元一瓶啤酒,两个啤酒瓶可换一瓶啤酒,四个啤酒瓶盖可换一瓶啤酒,求10元可以买几瓶啤酒。1、不允许借瓶子、瓶盖:#include//n个瓶,m个瓶盖int GetCount(int n,int m){ if (n < 2 && m < 4) { printf("剩余瓶子%d个,瓶盖%d个 ",n,m); return n; } int a = n / 2;原创 2016-01-23 15:15:38 · 6021 阅读 · 4 评论 -
C语言递归调用2:猜数小游戏
用C语言实现一个猜数游戏,随机产生一个数,用户每次猜,告诉它大了或者小了,直到猜对,用递归实现。#include #include #include void guess(int num){ int n; printf("请输入1000以内的整数:"); scanf("%d",&n); if(n>num) printf("大了\n"); else if(n<num) pr原创 2015-12-20 07:14:36 · 3482 阅读 · 0 评论 -
C语言递归调用1:李白打酒
题目描述:话说大诗人李白,一生好饮。幸好他从不开车。 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题原创 2015-12-19 20:16:11 · 7770 阅读 · 0 评论 -
【练习1】输出一个螺旋数组,可以很好地理解数组和指针的使用
Input array size N (1~20)Using Two-Dimensional array输入数组大小(1 - 20):输出结果:静态数组版:#include int main(){ int a[20][20],num,count,i,j,k,kend,lend; printf("Input a number[1-20]: "); scanf原创 2015-11-07 08:54:39 · 8272 阅读 · 0 评论 -
单精度浮点数(float)与双精度浮点数(double)的区别
【转载】单精度浮点数(float)与双精度浮点数(double)的区别如下:(1)在内存中占有的字节数不同•单精度浮点数在机内占4个字节•双精度浮点数在机内占8个字节(2)有效数字位数不同•单精度浮点数有效数字8位•双精度浮点数有效数字16位(3)所能表示数的范围不同•单精度浮点的表示范围:-3.40E+38 ~ +3.40E+3转载 2015-10-30 09:37:59 · 74197 阅读 · 2 评论 -
单向链表实现学生学籍管理
单向链表实现学生学籍管理,有增加、查询、删除、退出等功能。#include #include #include typedef struct STUDENT{ char id[20]; char name[20]; char major[20]; char phone[20]; char hobby[20]; STUDENT *next;}STUDENT,*pSTUDEN原创 2015-12-10 13:24:52 · 2797 阅读 · 0 评论 -
c语言牛顿迭代法的问题
x1 为1迭代公式: Xn+1=Xn-f(Xn)/f'(Xn)当|Xn+1-Xn|函数方程为:ax^3+bx^2+c^x+d=0输入1 3 5 2 的正确结果: -0.546602#include#include#include void main(){ double a,b,c,d,x,xn,f,df; printf("请输入4个系数: "); sc原创 2015-11-13 00:20:07 · 4782 阅读 · 0 评论 -
【练习2】
定义数组:{ 0,1,5,4,2,5,7,8,3,4,5,1,1,2,3,6,7,8 }按升序排序•重复数据删除打印过程0 17输出结果:#include #define NUM 18int main(){ int a[NUM]={ 0,1,5,4,2,5,7,8,3,4,5,1,1,2,3,6,7,8 },b[NUM]; int i,j,temp;原创 2015-11-07 10:05:02 · 405 阅读 · 0 评论 -
用sscanf()从字符串中读数
将一个只有数字的字符串转换成实数,可以用atof(buf);但是如果字符串里包含其他非数字字符,就需要用到sscanf().例如从一个文件名字符串中提取时间:#include #include void main(){ char buf[50]="VOL_20151001162015.h264"; double videoTime; sscanf_s(buf,"VOL_%lf.原创 2015-11-05 16:18:32 · 3423 阅读 · 0 评论 -
error C2556: “void main(void)”: 重载函数与“int main(void)”只是在返回类型上不同
用VC2010创建了一个Win32控制台项目,再创建一个C++源文件,里面包含有main()主函数,并且添加到项目中。编译,出现错误:error C2556: “void main(void)”: 重载函数与“int main(void)”只是在返回类型上不同什么原因呢?原来在上一个例子编译成功后,在原来的源文件后面接着写新的程序,又添加原创 2015-11-03 19:42:52 · 9377 阅读 · 0 评论 -
LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup
用VC2010创建了一个空的Win32控制台项目,再创建一个C++源文件,里面包含有main()主函数,编译,出现错误:LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup什么原因呢?原来创建的源文件没有加到项目里面去造成的。解决办法:在解决方案资源管理器,右击源文件,选择添加>现有项,打开一个对话框,选中main所在的原创 2015-11-03 19:25:52 · 33805 阅读 · 8 评论