动态内存分配

/*时间:2011年9月7日14:26:51备注:动态内存分配,需要使用malloc函数,malloc是memory(内存)+allocate(分配)的缩写*/# include <stdio.h># include <malloc.h> //必须有,否则报错error C2065: 'malloc' : undeclared identifierint main (void){ int i= 5; //静态分配,分配了4个字节 int * p = (int*) malloc (4); ...

指针与一维数组

/*时间:2011年9月6日11:54:38目的:学习掌握指针与一维数组的关系和用法*/# include <stdio.h>//函数用来输出任何一个一维数组的内容void output (int * PArr,int len) //确定一个数组需要两个形参,1是数组的首个元素的地址,2是数组的长度 //必须要有长度,因为数组不像字符串有结束的标志 { int i; for (i=0; i<len; ++i) { // printf("%d ...

指针经典程序——互换两个数字

/*时间:2011年9月5日11:38:08目的:通过经典的指针程序,互换两个数字,掌握函数中指针的用法*/# include <stdio.h>void huhuan1 (int, int); //对函数前置声明,一般声明的时候不写形参void huhuan2 (int*,int*);void huhuan3 (int*,int*);int main (void){ int a = 3; int b = 5; huhuan1 (a,b); //程序执行到这里后调用函数,为形参a\b分配内存空间,当...

指针常见错误

常见错误1 # include <stdio.h>int main (void){ int * p; int i = 3; *p = i; //这样写是错的,前面定义了两个变量,p和i。这条语句把i赋值给了以p变量里内容为地址的另一个变量 //p变量里的内容没定义,是个垃圾值,那么以这个垃圾值为地址的变量是什么并不确定 //这时候的赋值,指不定会把那里给篡改了,尽管编译时可能不报错或者不警告,但执行起来可能会出问题 printf("%d\n",*p); return 0;} ...

指针学习热身程序

发现指针太绕人了,老师说要慢慢的学,小心翼翼的学,呵呵,别怕繁琐,还是从最简单的一个程序一个程序来吧 #include<stdio.h>int main (void){ int * p; //p是变量的名字,int * 表示p变量中存放的是 int型变量 的地址 //int* p 不表示定义了一个 叫*p的 int型的 变量 //正确的理解是,p是变量名 p变量的数据类型是int *型。所谓int *型,实际就是存放 int型变量 的地址的类型 int i = 3; int ...

轮流拿硬币的小游戏

/*时间:2011年9月2日9:45:11目的:一个小游戏,论坛上看到的题目,觉得有趣,试试自己能不能编出来功能:16个硬币,玩家和电脑轮流拿,每人每次只能拿1、2或4枚,最后一枚谁拿走谁算输*/# include <stdio.h>int main (void){ int s=16; int n; char ch; do { while (s > 0) { while (1) { if (s >= 4) p...
默认分类 | 2011-09-02 09:48 | 阅读 1522 次 | 评论 0 条

终于有点学不进去了

指针 绕得人好晕,呵呵,休息了,明天重新再看一遍
默认分类 | 2011-08-30 15:22 | 阅读 941 次 | 评论 0 条

输入偶数分解成两个素数和

在论坛上看到的题目,自己试着做了一下 /*时间:2011年8月24日12:07:02功能:编程,任意输入一个偶数n,请将它分解为两个素数之和。输出形式为:* = * + *目的:练习使用函数完成判断是否素数的功能备注:论坛回帖 http://bbs.bccn.net/thread-348017-1-1.html 第1问*/# include <stdio.h>bool IsPrime (int val) //判断一个数是否素数,返回true或false{ int i; for (i=2; i<val; ++i) { if (val%i ==...
默认分类 | 2011-08-26 12:10 | 阅读 2766 次 | 评论 2 条

数组的用法

/*时间:2011年8月23日10:58:04目的:掌握数组的用法*/# include <stdio.h>int main(void){ //数组的定义 int i; int a[5]; //定义一个数组,[]中的5表示数组中元素的个数,这5个元素分别是a[0],a[1],a[2],a[3],a[4] printf("%d\n",a[5]); //想输出一个数组的所有元素,这样写是错误的,只有在定义时[]中的5才表示元素个数,除此以外只表示下标 for(i=0; i<5; ++i) //输出一个数组中的所有元素...

简单的电梯程序(switch及break的用法)

/*时间:2011年8月22日10:04:21功能:简单的电梯程序,输入楼层号,显示对应楼层的欢迎词目的:练习switch,以及switch中break的用法*/# include <stdio.h># include <math.h>int main(void){ int i; char j; char ch; do { printf("输入想去的楼层号\n"); //理解switch最典型的程序就是电梯程序 scanf("%d",&amp;i); ...

改进此前的一元二次方程代码(do...while的用法)

/*时间:2011年8月19日11:54:55功能:输入一元二次方程的3个系数,判断解的个数,并求出解目的:改善之前学过的一元二次方程代码,掌握do...while的用法*/# include <stdio.h># include <math.h>int main(void){ double a,b,c; double delta; double x1,x2; char ch; do //do...while主要用于人机交互 { ...

while用法举例2(求斐波拉契数列第n项的值)

/*时间:2011年8月17日16:44:54功能:键盘输入一个自然数n,输出斐波拉契数列第n项的值目的:练习while循环的用法注释:斐波拉契数列指的是这样一个数列:1、1、2、3、5、8、13、21、…… 通项公式为F(0) = 0,F(1)=1,F(n)=F(n-1)+F(n-2) (n≥2),*/# include <stdio.h>int main(void){ int f0 = 0; int f1 = 1; int f2; int n; int m; printf("请任意输入一个自然数,按回车结束\n"); scanf(...

while循环用法举例1(判断输入的数字是否回文数)

/*时间:2011年8月17日15:45:14功能:判断输入的数是否是回文数目的:掌握while循环的用法,体会while和for的区别注释:回文数是指一种正着读、倒着读都一样的数,如12321*/# include <stdio.h>int main(void){ int val; //用来保存输入的数 int m; int sum = 0; printf("请任意输入一个自然数,按回车结束\n"); scanf("%d",&amp;val); m = val; ...

for循环习题(求1到100奇数和,偶数和。奇数个数,奇数平均值)

/*时间:2011年8月16日13:22:48功能:1.求1到100的奇数之和 2.求1到100的偶数只和 3.求1到100的奇数的个数 4.求1到100的奇数的平均值目的:完成课后习题,练习for循环用法*/# include <stdio.h>int main(void){ int i; int odd = 0; //odd表示奇数的和 int even = 0; //even表示偶数的和 int number = 0; //number表示奇数的个数 float average...

1+1/3+1/6+...1/n(for与if嵌套的用法以及强制转化数据类型)

/*时间:2011年8月16日10:41:05功能:计算1+1/3+1/6+...1/n,(n<=100)的结果目的:掌握for与if嵌套的用法,并了解强制类型转化的方法*/# include<stdio.h>int main(void){ int i; float sum = 1; //这里sum=1是因为当i=1时,i%3==0为假,注意与之前例子中sum=0的区别 for (i=1; i<=100; ++i) //...

求10以内所有奇数的和(for循环的用法)

/*时间:2011年8月12日15:15:14功能:求10以内所有奇数的和目的:掌握for循环的格式、用法、运行流程以及其他注意事项*/# include<stdio.h>int main(void){ int i; int sum = 0; int n = 0; for (i=1; i<=10; i+=2) //i+=2等价于i=i+2 { //for与if类似,默认只能控制一个语句,想多控制几条语句的话需要用花括号括起来 ...
默认分类 | 2011-08-12 15:16 | 阅读 9696 次 | 评论 1 条

if常见问题解析

1.if中错误使用空语句 /*时间:2011年8月11日15:41:26目的:注意在使用if时常见的一种错误:空语句*/# include <stdio.h>int main(void){ if (2 > 3); //这里多了一个分号;实际上这一个分号被认为是一条空语句 printf("AAAA\n"); //如果没有哪个分号,这条语句应该因为表达式为假而不执行 printf("BBBB\n"); //那么不出错的时候最后会输出BBBB/*这里带有空语句的代码可写成下面的形式,更好理解if (2 > 3); ...

三个整数排序

/*时间:2011年8月10日11:53:03功能:对通过键盘任意输入的3个整数由大到小排序目的:利用已学的printf、scanf、if完成简单功能,掌握两个数字互换位置的方法*/# include <stdio.h>int main(void){int a, b, c; int t;printf("请任意输入三个整数,以空格间隔,按回车结束\n");scanf("%d %d %d",&amp;a,&amp;b,&amp;c); //按规则通过键盘输入三个整数,比如2 5 0if (a < b) //当a<b时互换顺序,这样把较大的放在前面{ t...

if的用法

/*时间:2011年8月9日16:27:16目的:测试if的用法及注意事项*/# include <stdio.h>int main(void){/*if的用法格式:if (表达式) 语句功能:如果表达式为真执行语句;如果表达式为假,语句不执行*/ if (3 > 2) //如果括号里的表达式为真,执行下边的语句 printf("AAAA\n"); //这里3>2为真,所以执行printf,最后输出AAAA if (3 < 2) printf("BBBB\n"); //这里3<2为假,所以pr...

逻辑运算符的用法

/*时间:2011年8月5日16:51:47目的:测试逻辑运算符!、&amp;&amp;、||的用法和注意事项*/# include <stdio.h>int main(void){int i;int k;//!(非)的用法k = !0; //逻辑中0被认为是假,而!0就是非假,所以是真printf("%d\n",k); //真显示为1k = !1; //1是非0的数,所以是真,!1就是非真当然是假printf("%d\n",k); //假显示为0k = !2; ...
最新评论