
C语言
文章平均质量分 50
杨海彦
这个作者很懒,什么都没留下…
展开
-
【C语言】函数递归(求字符串的长度)
方法一:#includeint my_strlen(char *str){ int count = 0; while(*str++ != '\0') { count++; } return count;}int main(){ char *p = "abcdefg"; printf("%d\n",my_strlen(p)); return 0;}方法二:(原创 2015-04-11 16:01:47 · 5212 阅读 · 0 评论 -
建立一个动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩
#include#includeint main(){ void check(int *); int *p1; int i; p1 = (int *)malloc(5*sizeof(int)); for(i = 0;i < 5;i ++) { scanf("%d",p1+i); } check(p1); return 0;}void check(int *p)原创 2015-03-23 16:58:23 · 3997 阅读 · 0 评论 -
将若干个字符串按字母顺序(由小到大)输出。(指针数组)
#include#includeint main (){ void sort(char *name[],int n); void print(char *name[],int n); char *name[] = {"Follow me","BASIC","Great Wall","FORTRAN","Computer design"}; int n = 5; sort(name原创 2015-03-23 16:55:31 · 3446 阅读 · 0 评论 -
输出10个数的最大值
方法一:#include int main(){ int max,k,a[10]; printf("input 10 numbers:\n"); for(k=0;k<=9;k++) { scanf("%d",&a[k]); if(max<a[k]) { max=a[k]; } } printf("%d\n",max); return 0;}方法原创 2015-03-14 15:37:32 · 1068 阅读 · 0 评论 -
输出1000—2000年之间的所有闰年
#includeint main(){ int year; int count = 0; for(year = 1000;year < 2000; year ++) { if(year%4 == 0 && year%100 != 0) { count ++; printf("%d\t",year); } if(year%400 == 0) { co原创 2015-03-14 15:53:56 · 3767 阅读 · 0 评论 -
输出乘法口诀表
#includevoid fun(void){ int i = 0; int j = 0; for(i = 1;i <= 9; i ++) { for(j = 1;j <= 9; j ++) { if(j<=i) printf("%d*%d=%d\t",i,j,i*j); } printf("\n"); }}int main(){ fun();原创 2015-03-14 15:10:31 · 491 阅读 · 0 评论 -
100到200之间的素数并统计个数
方法一:#includeint main(){ int n = 0; int m = 0; int count = 0; for(n = 101;n < 200;n ++) { for(m = 3;m < n;m ++) { if(n%m == 0) break; } if(n == m) { count ++; printf("%d原创 2015-03-14 15:07:43 · 4738 阅读 · 0 评论 -
有a个学生,每个学生有b门课程的成绩。要求用户输入学生序号以后,能输出该学生的全部成绩用指针函数来实现
#includeint main (){ float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; float *search(float (*pointer)[4],int n); float *p; int i; int k; printf("enter the number of student:"); s原创 2015-03-22 14:45:44 · 8625 阅读 · 0 评论 -
输入两个整数,然后让用户选择1或者2,选1是调用max函数,输出二者中大数,选2时调用min函数输出二者中的小数(指向函数的指针变量)
#includeint main (){ int max(int,int); int min(int x,int y); int (*p)(int,int); int a; int b; int c; int n; printf("enter a and b:"); scanf("%d,%d",&a,&b); printf("choose 1 or 2:"); scan原创 2015-03-22 14:43:52 · 4600 阅读 · 1 评论 -
用指针方法对10个整数由大到小排序
#includeint main(){ void sort(int x[],int n); int i; int *p; int a[10]; p = a; printf("enter 10 integer numbers:"); for(i = 0;i < 10;i++) { scanf("%d",p++); } p = a; sort(p,10); for(p原创 2015-03-22 14:38:11 · 5405 阅读 · 2 评论 -
输入3个整数a,b,c。要求按由大到小的顺序将他们输出,用函数实现。
#includeint main(){ void exchange(int *q1,int *q2,int *q3); int a; int b; int c; int *p1; int *p2; int *p3; printf("please enter three numbers:"); scanf("%d,%d,%d",&a,&b,&c); p1 = &a; p2原创 2015-03-22 14:33:44 · 8766 阅读 · 0 评论 -
3个学生,各学4门课,计算总平均分数以及第n个学生的成绩(用指向数组的指针作函数参数)
#includeint main(){ void average(float *p,int n); void search(float (*p)[4],int n); float score[3][4] = {{65,67,70,60},{80,87,90,81},{90,99,100,98}}; average(*score,12); search(score,2); retu原创 2015-03-22 14:40:36 · 8691 阅读 · 0 评论 -
将数组a中n个整数按反序存放
数组实现:#includeint main(){ void inv(int x[],int n); int i; int a[10] = {3,7,9,11,0,6,7,5,4,2}; printf("the original array:"); for(i = 0;i < 10;i++) { printf("%5d",a[i]); } printf("\n"); i原创 2015-03-22 14:36:21 · 3560 阅读 · 0 评论 -
将一个数字字符串转换成这个字符串对应的数字
#include#include#include#includedouble my_atof(char *str){ double ret = 0.0; int sign = 1; char *pointer; while(*str != '\0') { if(isspace(*str)) { str ++; } else if(*str == '-')原创 2015-03-29 10:55:10 · 1170 阅读 · 0 评论 -
数字字符转换为整数并返回这个整数
#includeint ascii_to_integer(char *str){ int ret = 0; while(*str != '\0') { if((*str '9')) return 0; else { ret = ret * 10 + (*str-'0'); } str ++; } return ret;}int main(原创 2015-03-29 10:52:11 · 1395 阅读 · 1 评论 -
有三个候选人,每个选民只能投选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果
#include#includestruct Person{ char name[20]; int count;}leader[3]={"Li",0,"Zhang",0,"Sun",0};int main (){ int i; int j; char leader_name[20]; for( i = 0;i < 10;i++) { scanf("%s",lead原创 2015-03-23 17:01:13 · 7454 阅读 · 1 评论 -
有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息
#includestruct Student{ int num; char name[20]; float score;};int main(){ struct Student stu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86}, {10108,"Ling",73.5},{10110,"Sun",原创 2015-03-23 17:05:51 · 25954 阅读 · 2 评论 -
【C语言】斐波那契数
递归实现:#includeint fib(int n){ if(n <= 2) return 1; else { count ++; return fib(n - 1) + fib(n - 2); } //return fib(10);}int main (){ printf("%d\n",fib(10)); return 0;}函数实现:#原创 2015-04-13 22:06:36 · 1429 阅读 · 0 评论 -
【C语言】接受一个整形(无符号),把他转换为字符并打印(递归)
递归实现:#includevoid binary_to_ascii(unsigned int value){ if((value/10) != 0) binary_to_ascii(value/10); printf("%c ",value%10+'0'); }int main(){ unsigned int ret = 1234; binary_to_ascii(ret)原创 2015-04-13 21:35:23 · 1060 阅读 · 0 评论 -
不创建临时变量,交换两个变量的值
方法一:(加法实现)#includeint main(){ int i = 1,j = 2; //i=01,j=11(二进制数) i = i+j; //i=i+j,j=j j = i-j; //i=i+j,j=i i = i-j; //i=j,j=i printf("%d ,%d\n",i,j); return 0;}方法二:(乘法实现)#i原创 2015-03-14 15:17:51 · 522 阅读 · 0 评论 -
给出一百分制成绩,要求成绩等级‘A’‘B’‘C’‘D’‘E’。90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E.
#includeint main(){ float score; char grade; printf("输入学生的成绩:\n"); scanf("%f",&score); while(score>100 || score < 0) { printf("输入有误,请重输\n"); scanf("%f",&score); } switch((int)(score/10)原创 2015-03-18 22:48:51 · 16848 阅读 · 0 评论 -
y = x (x>1) ||y = 2*x-1 (1<x<10) ||y = 3*x-11 (x>=10)
#includeint main(){ int x,y; printf("输入x:\n"); scanf("%d",&x); if(x < 1) { y = x; printf("x = %d,y = x = %d\n",x,y); } if(x < 10) { y = 2*x - 1; printf("x = %d,y = (2*x - 1) = %d\n"原创 2015-03-18 22:47:10 · 1381 阅读 · 1 评论 -
输入一个三位数,其各位数字的立方和等于该数本身
#includeint main(){ int i,j,k,n; printf("parcissus numbers are:\n"); for(n = 100;n <1000;n ++) { i = n/100; j = n/10 - i*10; k = n%10; if(n == i*i*i + j*j*j + k*k*k) { printf("%d\n原创 2015-03-18 22:45:00 · 19965 阅读 · 0 评论 -
用一个程序说明break和contiune的区别
#includeint main(){ int i,j,n = 0; for(i = 1;i <= 4; i++) { for(j = 1;j <= 5; j++) { if(n%5 == 0) { printf("\n"); //控制在输出5个就换行 } n ++; //n用来累计输出数据的个数 printf("%d\t",i原创 2015-03-18 22:41:34 · 675 阅读 · 0 评论 -
将两个字符串链接
#includevoid fun(char string1[],char string2[],char string[]){ int i,j; for(i = 0;string1[i] != '\0';i++) { string[i]=string1[i]; } for(j = 0;string2[j] != '\0';j++) { string[i+j]=string2原创 2015-03-18 22:34:57 · 634 阅读 · 1 评论 -
输入两个正整数m和n,求其最大公约数和最小公倍数
#includeint main (){ int p,r,m,n,temp; printf("输入两个正整数 m,n:"); scanf("%d,%d,",&m,&n); if(m < n) { temp = m; m = n; n = temp; } p = m * n; while(n != 0) { r = m%n; m = n; n = r;原创 2015-03-18 22:33:20 · 1032 阅读 · 0 评论 -
数组的行列变换
#includeint main(){ int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n"); for(i = 0;i <= 1;i ++) { for(j = 0;j <= 2; j ++) { printf("%5d",a[i][j]); b[j][i] = a[i][j];原创 2015-03-18 22:30:03 · 849 阅读 · 0 评论 -
求ax^2+bx+c=0的方程的解
#include#includeint main(){ int le = 0; double a,b,c,disc,x1,x2,realpart,imagpart; scanf("%lf,%lf,%lf",&a,&b,&c); printf("The equation"); if(fabs(a) <= le-6) { printf("is not a quadratic\n原创 2015-03-18 22:27:49 · 1974 阅读 · 0 评论 -
a个学生,各b门课程,找出有不及格的课程的学生及其学号
#includeint main(){ float score[][4] = {{60,70,80,90},{56,89,67,88},{34,78,90,66}}; float *search(float (*pointer)[4]); float *p; int i; int j; for(i = 0;i < 3;i++) { p = search(score+i);原创 2015-03-23 16:52:12 · 1353 阅读 · 1 评论 -
(建立静态链表)由3个学生数据的结点组成,要求输出各结点中的数据
#includestruct Student{ int num; float score; struct Student *next;};int main(){ struct Student a,b,c,*head,*p; a.num = 10101; a.score = 89.5; b.num = 10103; b.score = 90; c.num = 1010原创 2015-03-23 17:11:47 · 2052 阅读 · 0 评论 -
(指向结构体数组的指针)有n个结构体变量,内含学生学号,姓名和3门课的成绩。要求输出平均成绩最高的学生的信息
#include#define N 3struct Student{ int num; char name[20]; float score[3]; float aver;};int main(){ void input(struct Student stu[]); struct Student max (struct Student stu[]); void pri原创 2015-03-23 17:09:15 · 11980 阅读 · 1 评论 -
将字符串中的字符反向排序;
#include #includevoid swap(char *p1,char *p2){ char temp = *p1; *p1 = *p2; *p2 = temp;}char * reverse_string(char * string){ char *left = string; char *right = string + strlen(string)-1;原创 2015-03-29 10:47:41 · 1046 阅读 · 0 评论 -
将src指向的字符串追加到dest指向字符串的后面
#include#include#includechar * my_strcat(char *dest,char const *src){ char *ret = dest; assert((dest != NULL) && (src != NULL)); while(*dest != '\0') { dest ++; } while(*src != '\0') {原创 2015-03-29 10:45:59 · 1139 阅读 · 1 评论 -
函数返回参数值为1的个数
方法一:#includeint count_one_bits(unsigned int value){ int count = 0; while(value) { if( value%2 == 1) count ++; value = value/2; } return count;}int main(){ int ret = 0; ret = count原创 2015-03-12 23:03:07 · 668 阅读 · 0 评论 -
用递归方法求n!
#includeint main(){ int fac(int n); int n; int y; printf("input an integer number:"); scanf("%d",&n); y = fac(n); printf("%d != %d\n",n,y); return 0;}int fac(int n){ int f; if(n < 0)原创 2015-03-21 20:04:54 · 1892 阅读 · 0 评论 -
输入4个整数,找出其中最大的数,用函数嵌套调用来处理
#includeint main(){ int max4(int a,int b,int c,int d); int a; int b; int c; int d; int max; printf("Please enter 4 interger number:"); scanf("%d %d %d %d",&a,&d,&c,&d); max = max4(a,b,c,d)原创 2015-03-21 19:53:20 · 12060 阅读 · 0 评论 -
输出杨辉三角
#include#define N 10int main (){ int i; int j; int a[N][N]; for(i = 0;i < N;i ++) { a[i][i] = 1; a[i][0] = 1; } for(i = 2;i < N;i ++) { for(j = 1;j <= i -1;j ++) { a[i][j] = a[i原创 2015-03-21 19:27:34 · 549 阅读 · 0 评论 -
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
#includeint main(){ char string[81]; int i; int num = 0; int word = 0; char c; gets(string); for(i = 0;(c=string[i]) != '\0';i++) { if(c ==' ') { word = 0; } else if(word == 0)原创 2015-03-21 19:23:21 · 7985 阅读 · 0 评论 -
求出平均成绩,最高分和最低分
#include float Max = 0;float Min = 0;int main (){ float average(float array[],int n); float ave,score[10]; int i; printf("Please enter 10 scores:"); for(i = 0;i < 10;i++) { scanf("%f",&sc原创 2015-03-20 23:19:12 · 4086 阅读 · 0 评论 -
用选择法对数组中10个整数由大到小排序
#includeint main (){ int i = 0; void sort(int array[],int n); int a[10]; printf("enter array:\n"); for(i = 0;i < 10;i ++) { scanf("%d",&a[i]); } printf("the sorted array:\n"); for(i = 0;原创 2015-03-20 23:15:43 · 8228 阅读 · 0 评论