c语言程序
为爱坚持
因为你是大学生,所以你什么也不是,你没有自豪的资本。现实不会给你颓废的时间
展开
-
用指针引用数组元素并打印输出
数组指针原创 2015-07-22 21:38:15 · 1231 阅读 · 1 评论 -
顺序队列的表示
顺序队列的入队操作和出队操作原创 2015-07-25 09:56:38 · 1014 阅读 · 0 评论 -
基数排序C语言代码实现
#includetypedef struct{ int num; int next;}slcell; //静态链表的结点类型#define M 11int f[M];int e[M];int head=0;void distribute(slcell *a,int w){ int i; int last; for(i=0;i<10;i++)转载 2015-06-26 09:11:15 · 5076 阅读 · 0 评论 -
实现一个通讯录
1. /* 2. 实现一个通讯录; 3. 通讯录可以用来存储1000个人的信息,每个人的信息包括: 4. 姓名、性别、年龄、电话、住址 5. 6. 提供方法: 7. 1. 添加联系人信息 8. 2. 删除指定联系人信息 9. 3. 查找指定联系人信息 10. 4. 修改指定联系人信息 11.原创 2015-05-03 12:21:18 · 603 阅读 · 0 评论 -
用数组来处理求Fibonacci数列问题
eg:1,1,2,3,5,8,13,21,34等这一系列数,只需要输入前20个数即可。#includeint main(){ int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf("%12d",原创 2015-04-08 19:43:09 · 6039 阅读 · 0 评论 -
用冒泡法,对十个数字进行从小到大排序
#includeint main(){ int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++)//进行9次循环,实现9趟比较 for(i=0;i<9-j;i++)//在每一趟中进行9-j次比原创 2015-04-08 20:17:33 · 14653 阅读 · 1 评论 -
打擂台算法
有一个3*4的矩阵,要求求出其中值最大的那个元素的值,以及其所在的行行号和列号#includeint main(){ int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};//定义数组并赋初值 max=a[0][0];//先认为a[0][0]最大 for(i=0;i<=2;i++) fo原创 2015-04-08 20:50:16 · 5437 阅读 · 0 评论 -
可变参数列表函数实现
#include #include float average(int val, ...) { va_list arg; int count; float sum = 0; //准备访问可变参数 va_start(arg, val); //添加取自可变参数列表的值 for (count =原创 2015-03-17 21:12:25 · 448 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现
#include int fun(int n,int k) { if(k == 0) { return 1; } if(k >= 1) { return n*fun(n,k-1); } } int main(void) { printf("%d\n",f原创 2015-03-17 21:07:38 · 452 阅读 · 0 评论 -
编写一个函数reverse_string(char *string),递归实现
/*实现:将参数字符串中的字符串中的字符反向排列;要求不能使用C函数库中的字符串操作函数*/#include char * reverse_string(char * string) { int len = 0; char temp; char *end = string; while(*end != '\0')原创 2015-03-17 21:21:56 · 458 阅读 · 0 评论 -
编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数,负整数)
#includeint my_atof(char *str) { int num = 0; int result = 0; int i; if(str[0] == '-') { printf("-"); for(i = 1; str[i] != '\0';i++) {原创 2015-03-16 14:55:33 · 3197 阅读 · 0 评论 -
函数指针作为函数参数,实现冒泡排序的升序排序和降序排序
#include#define N 10//定义数组元素个数int Ascending(int a,int b);//升序排列的函数声明int Descending(int a,int b);//降序排列的函数声明void swap(int*,int*);//交换数据的函数声明void BubbleSort(int a[],int n,int (*compare)(int,int));原创 2015-07-15 09:43:30 · 9865 阅读 · 0 评论 -
函数指针的说明
刚刚发的博客没有保存截图,很不好意思,现在我重新发一次。原创 2015-07-15 09:50:46 · 616 阅读 · 0 评论 -
内存动态分配与释放
内存的动态分配需要使用函数malloc,函数free和运算符sizeof来实现。函数malloc的原型是:Void* malloc(unsigned int size);函数malloc的作用是在内存中分配一个长度为size的连续存储空间。函数的返回值是一个指向分配空间的起始位置的指针。如果分配空间失败,则返回NULL。如果要为类型为struct node的结构体分配一块内存空间。可以使用原创 2015-07-22 22:12:33 · 1004 阅读 · 0 评论 -
用指针数组保存字符串并将字符元素打印输出
指针数组原创 2015-07-22 21:10:27 · 7418 阅读 · 1 评论 -
指向结构体的指针
运用指向结构体数组的指针输出学生信息说明:指针指向结构体数组,就得到了该结构体数组的起始地址。通过该地址可以访问结构体数组中的所有成员变量。其中,指向结构体的指针的算术运算与 指向数组的指针的用法相似。#include#define N 10//结构体类型及变量的定义,初始化struct student{ char *number; char *name; char sex;原创 2015-07-22 22:58:44 · 1600 阅读 · 0 评论 -
用指针引用数组元素并打印输出
昨天的程序运行结果没有上传正确,现在重新发一次。很不好意思原创 2015-07-21 07:50:36 · 1537 阅读 · 0 评论 -
二叉树的存储表示与实现
二叉树的顺序存储完全二叉树的存储可以按照从上到下,从左到右的顺序依次存储在一维数组中。完全二叉树的顺序存储如图所示: 如果按照从上到下,从左到右的顺序把非完全二叉树也同样的编号,将结点依次存放在一维数组中,为了能够正确反映二叉树中结点之间的逻辑关系,需要在一维数组中将二叉树中不存在的结点位置空出。 顺序存储对于完全二叉树来说是原创 2015-07-20 17:51:11 · 3204 阅读 · 0 评论 -
用指针引用数组元素并打印输出
指针与数组结合进行的运算原创 2015-07-20 18:31:39 · 3195 阅读 · 0 评论 -
链式队列
编程判断一个字符序列是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,即顺着看和倒着看是相同的字符序列。如字符序列“ABCDCBA”就是回文,而字符序列“ABCBCAB”,就不是回文。#include//包含输出函数#include//包含退出函数#include//包含字符串长度函数#include//包含内存分配函数typedef char DataType;//类型定原创 2015-07-20 10:34:28 · 943 阅读 · 0 评论 -
指针函数
指针函数是指函数的返回值是指针类型的函数。一个函数的返回值可以是整数,实型和字符类型,也可以是指针类型。指针类型的定义形式举例如下:float* fun(int a,int b);其中,fun是函数名,前面的“*”说明返回值的类型是指针类型,因为前面的类型标识是float,所以返回的指针指向浮点型。该函数有两个参数,参数类型是整型。通过一个题目学校指针函数的用法。例如:假设若干个学原创 2015-07-17 23:14:27 · 2256 阅读 · 0 评论 -
指向函数的指针数组的用法
声明一个指向函数的指针数组,并通过指针调用函数。#includevoid f1();//函数f1的声明void f2();//函数f2的声明void f3();//函数f3的声明void main(){ void (*f[3])()={f1,f2,f3};//指向函数的指针数组的声明 int flag; printf("请输入一个1,2或者3.输入0退出.\n"); scanf(原创 2015-07-15 22:28:25 · 848 阅读 · 0 评论 -
函数指针的说明
指针可以指向变量、数组,也可以指向函数,函数指针就是指向函数的指针。函数名实际是程序在内存中的起始地址。而指向函数的指针可以把地址传递给函数,也可以从函数返回给指向函数的指针。例如这个例子:通过一个函数求两个数的和,并通过函数指针调用该函数。#includeint sum(int a,int b);//求和函数的声明void main(){ int a,b; int (*fun)(int原创 2015-07-15 08:39:02 · 875 阅读 · 0 评论 -
编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数,负浮点数)
eg:"12.34"返回12.34,“123.34”返回123.34,函数原型:double my_atof(char *str)#include #include double my_atof(char *str) { int flag = 1; int count = 1; double num = 0; double value原创 2015-03-16 14:46:01 · 724 阅读 · 0 评论 -
写一个递归函数DigistSum(n),输入一个非负整数,返回组成它的数字之和
#include int DigitSum(int n) { if(n < 10) { return n; } if(n >= 10) { return ((n % 10) + DigitSum(n / 10)); } } int main(void) {原创 2015-03-16 15:22:17 · 541 阅读 · 0 评论 -
求1到100所有整数中出现9的个数
这个程序中输出的结果为20(因为99这个数中含2个9).原创 2014-12-28 13:27:09 · 554 阅读 · 0 评论 -
输出1000到2000年的闰年的年份
#include#includeint main(){ int i; int n=0; for(i=1000;i<=2000;i++) {if((i%4==0&&i%100!=0)||(i%100==0&&i%400==0)) printf("%5d ",i); n++; } { if(n%10==0) printf("\n"); }原创 2014-12-23 22:41:51 · 1400 阅读 · 0 评论 -
用冒泡法对任意十个数字按由小到大的顺序排序
#includeint main(){ int a[10]; int i,j,t; printf("input 10 number:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {原创 2015-01-30 19:33:04 · 4502 阅读 · 1 评论 -
不允许创建临时变量,交换两个数的内容
这种方法是老师在课堂上讲得,听了感觉收获很大原创 2014-12-23 09:43:43 · 322 阅读 · 0 评论 -
求100-200之间的素数
#include#includeint main(){ int m,i,n=0; for(m=101; m<=200; m+=2) { for (i=2;i<=sqrt(200);i++) if (m%i==0) break; if (i>sqrt(200)) { printf("%10d",原创 2014-12-23 09:14:43 · 492 阅读 · 0 评论 -
求10个数中最大值
1.#includeint main(){ int max=0; int n=0; int a[10]={1,2,3,4,5,6,7,8,9,10}; while(n<10) { if(a[n]>max) max=a[n]; n++; } printf("%d\n",max); return 0;}2.#includeint main(){ int m原创 2014-12-23 13:31:24 · 474 阅读 · 0 评论 -
判断花括号是否匹配
#include int main() { int ch; int a; while ((ch=getchar())!=EOF) { if (ch=='{') { a++; } else if(ch=='}'&&a!=0)原创 2014-12-22 14:20:26 · 590 阅读 · 0 评论 -
每一行输入都要打印到标准输出上,前面要加上行号
#include int main() { int ch; int fleg=1; int lenth=1; while((ch=getchar())!=EOF) { if(fleg==1) { printf("%d",lenth);原创 2014-12-22 14:15:56 · 514 阅读 · 0 评论 -
输出乘法口诀表
#include#includeint main(){ int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++)printf("%d*%d=%d ",i,j,i*j);printf("\n");}return 0;}原创 2014-12-21 23:50:18 · 406 阅读 · 0 评论 -
求1!+2!+3!+4!+……+10!
#includeint main(){ int i; int sum=0; int count=1; for(i=1;i<=10;i++) { count=i*count; sum+=count; } printf("%d\n",sum); return 0;}原创 2014-12-28 14:11:03 · 1196 阅读 · 0 评论 -
求1-1/2+1/3-1/4+...+1/99-1/100
#include#includeint main(){ float sign=1.0; float sum=0.0; int n=1; float term=1.0; while(n<=100) { term=sign/n; sign=-sign; sum=sum+term; n++; }原创 2014-12-28 14:15:41 · 511 阅读 · 0 评论 -
编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数
#includeint fun(int a,int b) { int c; c = a%b; if(c) { a = b; b = c; c = a%b; } return b; } int main(void) { printf("%d原创 2015-03-16 15:01:08 · 856 阅读 · 0 评论 -
输出100到200之间不能被3整除的数
有时并不希望终止整个循环的操作,只希望提前结束本次循环,而接着执行下次循环,这时就需要用continue语句。原创 2015-01-23 15:12:02 · 10853 阅读 · 1 评论 -
局部变量的例子
局部变量包含两层含义:1.一个函数中定义的变量不能被另一个函数使用;2.每次调用函数时局部变量都表示不同的存储空间。局部变量在每次函数调用时分配存储空间,在每次函数返回时释放存储空间。原创 2015-02-10 14:06:10 · 710 阅读 · 0 评论 -
自定义函数(编译时会报警告,但仍然能编译通过,运行结果也正确)
这个程序涉及到函数的隐式声明,在main函数中调用threeline时并没有声明它,编译器认为此处隐式声明了int threeline(void);隐式声明的函数返回值类型都是int,由于我们调用这个函数时没有传递任何参数,所以编译器认为这个隐式声明的参数类型是void,这样函数的参数和返回值类型都确定下来,编译器根据这些信息为函数调用生成相应的指令。然后编译器接着往下看到threeline的函数原型是void threeline(void),和先前隐式声明的返回值类型不符,所以报警告。好在我们也没有用到这原创 2015-02-09 15:04:25 · 565 阅读 · 0 评论