
C语言
ZDF0414
这个作者很懒,什么都没留下…
展开
-
从标准读入字符,若为大写字母,则需转换为小写字母输出,其他的按原样输出
#includeint main(){ char ch; while((ch=getchar())!=EOF) { if(ch>='A'&&ch<='Z') { ch=ch+32; printf("%c",ch); } else { printf("%c",ch); } } printf("\n"); return 0;}原创 2015-03-15 17:44:58 · 1809 阅读 · 0 评论 -
2/1+3/2+5/3+8/5+13/8+...求出该数列前20项的和
#includeint main(){ float i=2; float j=1; int n=1; double sum=0.0; for(n=1;n<=20;n++) { sum=sum+i/j; i=i+j; j=i-j; } printf("%f\n",sum); return 0;}原创 2015-03-15 16:45:39 · 1486 阅读 · 0 评论 -
折半查找
#includeint binsearch(int x,int v[],int n){ int left=0; int right=n-1; int mid=0; while(left<=right) { mid=(right+left)/2; if(v[mid]==x) return mid; if(v[mid]<x) { left=mid+1; }原创 2015-03-15 18:13:23 · 426 阅读 · 0 评论 -
用指针方法对10个整数按由大到小的顺序排序
#includeint main(){ void sort(int x[],int n); //sort函数声明 int i,*p; int a[10]; p=a; //指针变量p指向a[0] printf("please input 10 integer numbers:\n"); for(i=0;i<10;i++) { scanf("%d",p++);原创 2015-03-19 11:16:16 · 4744 阅读 · 0 评论 -
调用函数求三个数中的最大数
#includeint main(){ int max(); extern int A,B,C; //把外部变量A,B,C的作用域扩展到从此处开始 printf("please input three integer numbers:\n"); scanf("%d%d%d",&A,&B,&C); printf("max=%d\n",max()); return 0;}int原创 2015-03-19 10:14:57 · 7564 阅读 · 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:\n"); for(i=0;i<10;i++) { printf("%5d",a[i]); } printf("\n"); inv(a,10); p原创 2015-03-19 10:51:59 · 5131 阅读 · 1 评论 -
一个球从距地面100米的地方落下,每次落地后反弹起跳高度为原来的一半,经过10次落地,共经过多少米?第10次反弹多高?
#includeint main(){ int n=2; float sum=100.0; float i=100.0; for(n=2;n<=10;n++) { sum=sum+i; i=i/2.0; } printf("%f\n",sum); printf("%f\n",i/2); return 0;}原创 2015-03-15 17:03:56 · 1888 阅读 · 0 评论 -
有一个班,三个学生,各学四门课,计算总平均分数以及第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); return原创 2015-03-19 16:19:14 · 9536 阅读 · 0 评论 -
用指针将字符串a复制为字符串b,然后输出字符串b
#includeint main(){ char a[]="i am a student."; char b[20]; int i; for(i=0;*(a+i)!='\0';i++) { *(b+i)=*(a+i); } *(b+i)='\0'; printf("string a is:%s\n",a); printf("string b is:\n"); for(i原创 2015-03-19 16:15:34 · 8104 阅读 · 0 评论 -
用字符指针作函数参数来实现字符串的复制
#includeint main(){ void copy_string(char from[],char to[]); char a[]="i am a teacher."; char b[]="you are a student."; printf("string a=%s\nstring b=%s\n",a,b); printf("copy string a to string原创 2015-03-19 16:17:23 · 7143 阅读 · 0 评论 -
输入一行文字,找出其中的大写字母、小写字母、空格、数字以及其他字符各有多少
#includeint main(){ int upper=0; int lower=0; int digit=0; int space=0; int other=0; int i=0; char *p; char s[20]; printf("input string:"); while((s[i]=getchar())!='\n') { i++; } p=&s原创 2015-03-19 16:22:39 · 8972 阅读 · 0 评论 -
用指针输出二维数组任一行任一列元素的值
#includeint main(){ int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4]; //指针变量p指向包含4个整型元素的一维数组 int i,j; p=a; //p指向二维数组的0行 printf("please input row and colum:\n"); scanf("%d%d原创 2015-03-19 11:46:25 · 3645 阅读 · 0 评论 -
在主函数中输入10个等长的字符串。用另一函数对它们排序,然后在主函数输出这10个 已排好序的字符串
#include#includeint main(){ void sort(char s[][6]); int i; char str[10][6]; printf("input 10 strings:\n"); for(i=0;i<10;i++) { scanf("%s",str[i]); } sort(str); printf("Now,the sequence i原创 2015-03-19 17:02:44 · 11543 阅读 · 4 评论 -
写一个函数,将一个3*3的矩阵转置
#includeint main(){ void move(int *pointer); int a[3][3]; int *p,i; printf("input matrix:\n"); for(i=0;i<3;i++) { scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]); } p=&a[0][0]; move(p); print原创 2015-03-19 21:22:47 · 11385 阅读 · 3 评论 -
编写一个函数,从一个字符串中提取一个子字符串
#include#includeint substr(char dst[],char src[],int start,int len){ char* sc = src+start; int n = strlen(sc); int i = 0; if(n < len) { len = n; } while(len) { dst[i] = sc[i]; len--;原创 2015-03-19 21:29:02 · 825 阅读 · 0 评论 -
switch语句的使用
#includeint main(){ char grade; scanf("%c",&grade); printf("score:\n"); switch(grade) { //如果一个分支没有用break结束,程序会继续向后面的分支运行 case 'A': printf("85~100\n"); break; case 'B': printf("75原创 2015-03-16 13:51:18 · 828 阅读 · 0 评论 -
给出年、月、日,计算该日是该年的第几天
#includeint main(){ int sum_day(int month,int day); int leap(int year); int year; int month; int day; int days; printf("input date(year,month,day):"); scanf("%d%d%d",&year,&month,&day); pri原创 2015-03-20 14:07:16 · 4740 阅读 · 1 评论 -
把一个十进制数的二进制形式翻转,并输出翻转后所对应的十进制数
#include#includeint main(){ int value; unsigned int sum=0; int i=0; int j=0; int a[32]; scanf("%d",&value); while(value) { for(i=31;i>=0;i--) { j=value%2; value=value/2; a[i]=j原创 2015-03-20 14:01:25 · 952 阅读 · 0 评论 -
函数指针
#include int max(int x,int y){ return x>y?x:y;}int main(){ int x = 10; int y = 20; int ret = 0; int (*pfun)(int a,int b) ; pfun = &max; ret = (*pfun)(x,y); printf("%d\n",ret); return 0原创 2015-03-28 13:43:23 · 355 阅读 · 0 评论 -
二维数组参数与二维指针参数
#include void fun(int (*p)[5]){ int i = 0; int j =0; for(i = 0;i<2;i++) { for(j = 0;j < sizeof(*p)/sizeof(**p);j++) { printf("%d ",p[i][j]); } }} int main(){ int a[2][5] = {0}; /原创 2015-03-28 19:19:17 · 415 阅读 · 0 评论 -
无法把指针变量本身传递给一个函数
//用return实现#include#include#includechar * get_memory(char *p){ p = (char *)malloc(10 * sizeof(char)); return p;}int main(){ char *p=NULL; p=get_memory(p); strcpy(p,"bit-tech"); printf("%原创 2015-03-28 17:57:40 · 405 阅读 · 0 评论 -
在多个字符串中寻找一个字符
#includeint find(char *p[4],char x){ while(*p!=NULL)//判断字符串 { while(**p!='\0')//判断字符串的字符 { if(x==**p) { return x; } else { (*p)++; } } p++; } return 0;}int ma原创 2015-03-28 18:29:44 · 673 阅读 · 0 评论 -
将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素
#includeint main(){ void change(int *p); int a[5][5]; int *p; int i; int j; printf("input matrix:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { scanf("%d",&a[i][j]); } } p=&a[0][0];原创 2015-03-21 17:57:30 · 10322 阅读 · 5 评论 -
根据用户的选择,输出两个数的结果
#includeint main(){ int fun(int x,int y,int (*p)(int ,int)); //fun函数声明 int max(int,int); //max函数声明 int min(int,int); //min函数声明 int add(int ,int);原创 2015-03-21 13:15:05 · 523 阅读 · 0 评论 -
求一个3*3的整型矩阵对角线元素之和
#includeint main(){ int a[3][3]; int sum=0; int i; int j; printf("enter data:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%3d",&a[i][j]); } } for(i=0;i<3;i++) { sum=sum+a[原创 2015-03-21 17:58:43 · 1871 阅读 · 0 评论 -
用‘*’输出一个菱形图案
#includeint main(){ int i; int j; int k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) { printf(" "); } for(k=0;k<=2*i;k++) { printf("*"); } printf("\n"); } for(i=0;i<=2;i++) {原创 2015-03-21 18:00:27 · 1161 阅读 · 0 评论 -
编写一个程序,输入月份号,输出该月的英文月名
#includeint main(){ char*month_name[13]={"illegal month","January","February","March","April", "May","June","July","August","September","October","November","December"}; int n; printf("input mo原创 2015-03-21 18:20:17 · 7463 阅读 · 0 评论 -
从标准输入读取几行输入,每行输入都要打印到标准输出上,前面加上行号。
#includeint main(){ int ch; int line=0; int flag=1; while((ch=getchar())!=EOF) { if(flag==1) { line++; printf("%d",line); flag=0; } if(ch=='\n') { flag=1; } putchar原创 2015-03-12 21:56:54 · 677 阅读 · 0 评论 -
从十个数中输出最大数
#includeint main(){ int max,k,a[10]; for(k=0;k<=9;k++) { scanf("%d",&a[k]); } max=a[0]; for(k=1;k<=9;k++) { if(max<a[k]) { max=a[k]; } } printf("%d\n",max); return 0;}//以调用函数来原创 2015-03-12 22:24:58 · 621 阅读 · 0 评论 -
不创建临时变量,交换两个数的值
//前两种实现方法有局限性,当两个值都非常大的时候,两者相乘或相加的结果可能溢出, //加法实现 /*int a,b; printf("please input: a,b\n"); scanf("%d%d",&a,&b); a=a+b; b=a-b; a=a-b; printf("a:%d\nb:%d\n",a,b);*/ //乘法实现 /*void fun() { i原创 2015-03-12 22:08:54 · 439 阅读 · 0 评论 -
求圆面积,圆周长,圆球表面积,圆球体积,圆柱体体积
#includeint main(){ float r; float h; double S1=0.0; double L1=0.0; double S2=0.0; double V2=0.0; double V=0.0; printf("input r and h:\n"); scanf("%f%f",&r,&h); S1=3.14*r*r; //圆面积原创 2015-03-22 11:31:27 · 2243 阅读 · 1 评论 -
验证花括号的匹配
#includeint main(){ int ch; int i=0; while((ch=getchar())!=EOF) { if(ch=='{') { i++; } if(ch=='}'&&i==0) { printf("no\n"); return 0; } if(ch=='}'&&i!=0) { i--; } }原创 2015-03-12 21:41:02 · 507 阅读 · 0 评论 -
写一个函数,要求输出的数,每两个之间空一个空格
#include#includeint main(){ void insert(char[]); char str[80]; printf("input four digits:\n"); scanf("%s",str); insert(str); return 0;}void insert(char str[]){ int i; for(i=strlen(str);i原创 2015-03-22 15:48:24 · 3892 阅读 · 0 评论 -
求a+aa+aaa+aaaa+....的值
#includeint main(){ int a; int n; int i; int j=0; int sum=0; printf("input a and n:\n"); scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { j=j+a; sum+=j; a=a*10; } printf("%d\n",j); printf(原创 2015-03-22 15:51:18 · 1144 阅读 · 0 评论 -
n个人围成一个圈,顺序排号,按1,2,3循环报数,凡是报到3的人退出,问最后留下的 是原来的第几号那位
#includeint main(){ int i; int k; int m; int n; int *p; int num[50]; printf("\ninput number of person:n="); scanf("%d",&n); p=num; for(i=0;i<n;i++) { *(p+i)=i+1; } i=0; k=0; m=0; w原创 2015-03-22 15:47:25 · 4498 阅读 · 0 评论 -
定义一个结构体变量,计算该日在该年中是哪一天
#includestruct{ int year; int month; int day;}date;int main(){ int days; printf("input year,month,day:\n"); scanf("%d%d%d",&date.year,&date.month,&date.day); switch(date.month) { case 1原创 2015-03-22 15:57:34 · 1067 阅读 · 0 评论 -
用‘*’输出一个平行四边形
#includeint main(){ int i=0; int j=0; int k=0; for(i=0;i<5;i++) { for(j=0;j<=i;j++) { printf(" "); } for(k=0;k<5;k++) { printf("*"); } printf("\n"); } printf("\n"); retur原创 2015-03-22 10:58:03 · 7637 阅读 · 2 评论 -
用getchar输入字符,用putchar输出字符
//getchar函数没有参数,且只能接收一个字符#includeint main(){ char a; char b; char c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); printf("\n"); return 0;}原创 2015-03-22 11:08:45 · 6420 阅读 · 0 评论 -
输出1000到2000的闰年年份及个数
#includeint main(){ int i=0,count=0; for(i=1000;i<=2000;i++) { if(i%400==0||i%4==0&&i%100!=0) { printf("%d\t",i); count++; } } printf("\n"); printf("%d\n",count); printf("\n"); r原创 2015-03-14 14:26:25 · 1259 阅读 · 0 评论 -
输出100与200之间的素数
#includeint main(){ int i,j; for(i=101;i<200;i+=2) //循环时直接排除偶数 { for(j=3;j<i;j++) { if(i%j==0) break; } if(i==j) { printf("%d\t",i); } } return 0;}原创 2015-03-14 14:33:12 · 845 阅读 · 0 评论