- 编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者
解题思路:
1-先对前两个数进行比较,把较大值赋给最大值
2-把最大值和第三个数比较,较大者赋给最大值
#includeint main() { int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=a>b?a:b; if(max 求两个整数中的较大者
解题思路:
1-用一个函数实现比较得出两者中的较大者
2-在main函数调用此函数并输出结果#includeint max(int x,int y) { return x>y?x:y; } int main() { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max mum is:%d",c); } 求多项式1-1/2+1/3-1/4…+1/99-1/100
解题思路
1-分别定义分子、分母、符号、和数
2-分母为偶数时分子为负数#includeint main() { int sign=1; double term,demo,sum=1.0; for(demo=2.0;demo<=100;demo++) { sign = -sign; term=sign/demo; sum=sum+term; } printf("the sum is:%lf",sum); return 0; } //求两个整数之和
解题思路
1-定义三个变量a,b,sum;注意sum要初始化
2-通过调用函数scanf进行数值输入
3-sum存放两个整数之和#includeint main() { int a,b,sum=0; scanf("%d",&a); scanf("%d",&b); sum=a+b; printf("The sum is:%d",sum); return 0; } 求12345
解题思路
1-用函数实现该功能
2-在主函数调用并输出#includeint factorial(int i) { int j,sum=1;; for( j=1;j<=i;j++) { sum *= j; } return sum; } int main() { int x,sum=0; scanf("%d",&x); sum = factorial(x); printf("%d",sum); return 0; } 质数筛选
解题思路
1-素数: 指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
2-只用判断奇数是否为素数
3-得到的素数存储在一个数组中//Q:输入n,输出不大于n的素数及个数 #include#include #define max 100 int main(){ int n,i,num; int IsPrime[max],ptr=0; puts("输入一个正整数:"); scanf("%d",&n); IsPrime[ptr++]=2; for(num=3;num<=n;num+=2){//只判断奇数是否为素数 for(i=2;i //求1-1/2+1/3-1/4+…+1/99-1/100
1-注意分数数据类型 #include#define NUM 100 int main(){ float sum=0,i,flag=-1;// for(i=1;i<=NUM;i++){ flag=flag*(-1); sum=sum+(flag*(1/i)) ;//假设i设置为int型数据时,1/i在i为1时结果为1,i>1时表达式结果为0 } printf("数值和为:%fn",sum); return 0; } 两乒乓球队进行比赛,各处三人。甲队为A,B,C三人,乙队为X,Y,Z三。以抽签决定比赛名单。有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出3赛手的名单
解题思路
1-c只能和y比
2-A可以和Y,Z比
3-B可以和任何一人比#includevoid main() { char i,j,k;//分别为ABC三人对手 for(k='X';k<='Z';k++) { if(k!='X'&&k!='Z') { for(i='X';i<='Z';i++) if(i!='X') for(j='X';j<='Z';j++) if(i!=j&&i!=k&&j!=k)//保证三人对手不重复 printf("A-->%ctB-->%ctC-->%cn",i,j,k); } } } //现对N个数进行排序
解题思路
1-用一个数组存储输入的数据
2-用函数实现从小到大排序
3-实现从大到小和从小到达两种输出#includeint fun(int a[10]) { int i,j,t; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t; } 千万注意if中的花括号 } int main() { int a[10],i; printf("原数据顺序:n"); for(i=0;i<10;i++) { a[i]=rand()%10; printf("%3d",a[i]); } printf("n"); fun(a); printf("从小到大输出:n"); for(i=0;i<10;i++) { printf("%3d",a[i]); if(i==9) printf("n"); } printf("从大到小输出:n"); for(i=9;i>=0;i--) printf("%3d",a[i]); } //根据输入年、月,判断该月有多少天
解题思路
对输入月份进行判断,正确则继续执行,否则结束运行判断输入年份是否为闰年;
- 闰年2月份为29天
- 否则2月份为28天#includevoid main() { int month,year; printf("input the year and month:"); scanf("%d%d",&year,&month); if(month<13&&month>0) { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("31天"); break; case 4: case 6: case 9: case 11: printf("30天");break; case 2: if((year%4==0&&year%100!=0)||year%400==0) printf("29天"); else printf("28天"); break; } } } //求ax^2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0
解题思路
1-注意进行b^2-4ac>=0的判断
2-利用math.h中的函数求解#include#include void main() { float a,b,c,d,x1,x2; printf("enter three numbers!n"); scanf("%f%f%f",&a,&b,&c); d=b*b-4*a*c; 注意进行a是否为0的判断 if(a==0) printf("x1=x2=%fn",-c/b); else if(d>=0) { x1=(b+sqrt(d))/(-2*a); x2=(b-sqrt(d))/(-2*a); printf("方程的根为:nx1=%fnx2=%fn",x1,x2); } else printf("the numbers are error!"); } //给出三角形的三边长,求三角形面积
解题思路
1-定义三条边长变量、面积变量s
2-用海伦公式求出面积并存在面积变量s并输出#include#include int main() { float a,b,c,sum=0.0,s; printf("输入三个数!n"); scanf("%f%f%f",&a,&b,&c); if(a+b>c && a+c>b && b+c>a) { sum=(a+b+c)/2; s=sqrt(sum*(sum-a)*(sum-b)*(sum-c)); printf("a=%ftb=%ftc=%fn",a,b,c); printf("三角形的面积为:%f",s); } else printf("the number is error!"); return 0; } putchar()函数的功能是输出字符
#includevoid main() { char a='B',b='O',c='Y'; putchar(a); putchar(b); putchar(c); // putchar('n'); } //给出三角形的三边长,求三角形面积
解题思路
1-定义三条边长变量、面积变量s
2-用海伦公式求出面积并存在面积变量s并输出
3-注意判断三边长是否构成三角形#include#include int main() { float a,b,c,sum=0.0,s; printf("输入三个数!n"); scanf("%f%f%f",&a,&b,&c); 如果不进行判断,输入一些数据会得到错误的数值 if(a+b>c && a+c>b && b+c>a) { sum=(a+b+c)/2; s=sqrt(sum*(sum-a)*(sum-b)*(sum-c)); printf("a=%ftb=%ftc=%fn",a,b,c); printf("三角形的面积为:%f",s); } else printf("the number is error!"); return 0; } //用函数实现1!+2!+3!+……+N!
解题思路
1-用函数实现功能阶乘
2-在循环中调用函数#includeint fac(int x) { int i,sum=1; for(i=1;i<=x;i++) { sum=sum*i; } return sum; } void main() { int i,n,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+fac(i); } printf("%d",sum); } //给定一个大写字母,要求要小写字母输出
#includeint main() { char x,y; printf("please enter a char from A to Z!n"); scanf("%c",&x); y=x+32; printf("输入的字母转化为小写字母为:%c",y); return 0; } 计算存款利息。有1000元,想存一年。有3种方法可选:
(1)活期,年利率为r1,0.0036;
(2)一年期定期,年利率为r2,0.0225;
(3)存两次半年定期,年利率为r3,0.0198;
请分别计算出一年后按3种方法所得到的本息和#includedouble sum(double x) { int num; double sum,r1=0.0036,r2=0.0225,r3=0.0198; printf("input the num between 1 to 3!n"); printf("%lfn",x*(1+r1)); scanf("%d",&num); switch(num) { case 1:sum=x*(1.0+r1); break; case 2:sum=x*(1+r2);break; case 3:sum=2*((x/2.0)*(1+r3)); break; default:printf("please input a right num!"); } return sum; } int main() { double i=1000; double cash_and_benfit; cash_and_benfit=sum(i); printf("the sum is:%lf",cash_and_benfit); return 0; } //进行华氏度到摄氏度的转换
解题思路
1-注意变量类型#includeint main() { double c,f; scanf("%lf",&f); c=5.0/9*(f-32); printf("c=%lf",c); return 0; } //写一函数,将一个3*3整数矩阵转置
解题思路
1-用一个二位数组存放矩阵;
2-交换矩阵行和列存放在另一个数组中
3-输出这个数组#includevoid main() { int a[3][3],b[3][3]; int i,j; printf("原本的矩阵n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { a[i][j]=rand()%10; printf("%2d",a[i][j]); } printf("n"); } for(j=0;j<3;j++) { for(i=0;i<3;i++) { b[i][j]=a[j][i]; } } printf("转置后的矩阵n"); for(j=0;j<3;j++) { for(i=0;i<3;i++) { printf("%2d",a[i][j]); } printf("n"); } } //输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
#includevoid main() { char x; x=getchar(); if(x>='A'&&x<='Z') x=x+32; putchar(x); } //大写字母,把它转换位小写字母,然后用putchar函数输出该小写字母
#includevoid main() { char x,y; x=getchar(); y=x+32; putchar(y); } //要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70-84分,C等为60-69分,D等为60分以下。成绩的等级由键盘输入//
解题思路
1-用switch结构进行选择输出#includevoid main() { char ch; ch=getchar(); switch(ch) { case 'A':printf("the grade :85-100n");break; case 'B':printf("the grade :70-84n");break; case 'C':printf("the grade :60-69n");break; case 'D':printf("the grade :60以下n");break; default:printf("the data is error"); } } //输入3个整数,按由小到大的顺序输出
解题思路
1-使用选择排序算法
2-使用冒泡排序算法#includevoid main() { float a[3]; int i; printf("输入三个数:"); for(i=0;i<3;i++) scanf("%f",&a[i]); for(i=0;i<3;i++) printf("%5.2f",a[i]); //1-使用选择排序算法 ,3个数比较两次 for(i=0;i<2;i++) { int j,t; for(j=i+1;j<3;j++) if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t; } } //2-使用冒泡排序算法。3个数,比较两次 for(i=0;i<3-1;i++){ int j,t; //大的数放后面 for(j=0;j<2-i;j++){ if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } //输出 printf("n"); for(i=0;i<3;i++) printf("%5.2f",a[i]); } //写一程序,判断某一年是否为闰年
解题思路
1-能整除4不能整除100 || 能整除400 的为闰年
2-用if结构进行判断输出#includevoid main() { int year; printf("input a year :"); scanf("%d",&year); if((year%4==0 && year%100!=0)||year%400==0) printf("%d是闰年n",year); else printf("%d不是闰年n",year); } 运输公司对用户计算运输费用。路程越远,运费越低。标准如下。
S<250 没有折扣250<=s<500 2%折扣500<=s<1000 5%折扣1000<=s<2000 8%折扣2000<=s<3000 10%折扣3000<=s 15%折扣
解题思路
1-用if结构进行选择#includevoid main() { double s,p,w,d,sum; printf("input the price,weight,s :"); scanf("%lf%lf%lf",&s,&p,&w); if(s<250) d=0; else if(s>=250 && s<500) d=2; else if(s>=500 && s<1000) d=5; else if(s>=1000 && s<2000) d=8; else if(s>=2000 && s<3000) d=10; else d=15; sum=p*w*s*(1-d/100); printf("总价格应为%lfn",sum); } //有一阶跃函数y={-1(x<0);0(x=0);1(x>0),编译程序,输入一个x值,要求输出相应的y值
解题思路
1-用if语句进行判断#includevoid main() { int x,y; scanf("%d",&x); if(x<0) y=-1; else if(x==0) y=0; else y=1; printf("x=%dty=%d",x,y); } //输出所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于数的本身
解题思路
1-定义一个变量存储这个三位数
2-定义三个变量存储这个三位数的各位数字
3-进行判断#includevoid main() { int s ,x,y,z; printf("The figures are:"); for(s=100;s<=999;s++) { x=s/100; y=(s/10)%10; z=s%10; if(x*x*x+y*y*y+z*z*z==s) printf("%dt",s); } } //计算出1000以内的质数(第1版)
解题思路
1-一个大于1的自然数,除了1和本身,不能被其他自然整数整除
2-if筛选范围
3-循环结构遍历,选出质数#include#define NUM 1000 void main() { int num,i,ptr=0; for(num=2;num<=NUM;num++) { for(i=2;i //计算2行3列矩阵的和
解题思路
1-定义三个2行3列二维数组
2-用rand()函数对前两个数组初始化
3-把前两个矩阵相加的值存储在第三个矩阵#includevoid main() { int a[2][3],b[2][3],c[2][3]; int i,j; puts("第一个矩阵"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { a[i][j]=rand()%9+1; b[i][j]=rand()%9+1; printf("%2d",a[i][j]); } printf("n"); } puts("第二个矩阵"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("%2d",b[i][j]); } printf("n"); } for(i=0;i<2;i++) for(j=0;j<3;j++) { c[i][j]=a[i][j]+b[i][j]; } puts("矩阵和"); for(i=0;i<2;i++) for(j=0;j<3;j++) { printf("%3d",c[i][j]); if(j==2) { printf("n"); } } } //计算矩阵x和y的积
解题思路
1-定义三个二维数组#includevoid main() { int x[2][3]={{1,2,3},{4,5,6}},y[3][2]={{1,5},{5,3},{8,1}}; int z[2][2]={0},i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { z[i][0]+=x[i][j]*y[j][0]; //不同元素乘积和 z[i][1]+=x[i][j]*y[j][1]; } } //输出乘积矩阵 for(i=0;i<2;i++) { for(j=0;j<2;j++) { printf("%dt",z[i][j]); } printf("n"); } } //输入5名学生的分数并显示它们的总分和平均分
解题思路
1-用i统计人数,sum统计总分,grade记录分数。avg表示平均分;
2-用for循环实现#includevoid main() { int i; double sum=0,grade,avg; for(i=1;i<=5;i++) { printf("请输入%d号分数:",i); scanf("%lf",&grade); sum=sum+grade; } avg=sum/i; printf("总分为:%lf,平均分为:%lf",sum,avg); } //用公式(Π/4)=1-1/3+1/5-1/7+…求Π近似值,直到某一项绝对值小于10^6
#include#include int main(){ double PI,num=0,i; int flag=-1; for(i=1;fabs(flag*(1/i))>=1e-6;i+=2){ flag=flag*(-1); num+=flag*(1/i); } PI=num*4; printf("%10.8f",PI); return 0; } //求1+2+3+…+100
1-用while实现 #includevoid main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf("%dn",sum); } 2-用do-while结构实现 #include void main() { int i=1,sum=0; do{ sum=sum+i; i++; }while(i<=100); printf("%d",sum); } //在全系1000名学生中举行慈善募捐,当总数达到10万元时就结束,统计此时捐款人数以及平均每人捐款的数目。
解题思路
1-分别定义人数x,捐款数目amount、捐款总额total,平均每人捐款数目avg
2-用for循环解决累加#include#define SUM 100000 void main() { int x; double total=0,amount,avg; for(x=1;x<=1000;x++) { printf("please input amount :"); scanf("%lf",&amount); total+=amount; if(total>=SUM) break;//跳出并结束循环 } avg=total/x; printf("捐款人数为:%d,平均每人捐款的数目:%lf",x,avg); } //辗转相除法
解题思路
//输入n和m,输出n和m的最大公约数和最小公倍数:#includeint main(){ int n,m,r,p; int temp; while(1){ //要实现程序不中断的连续判断,输入语句需要放进循环中,否则会陷入死循环 //输入数值 scanf("%d%d",&n,&m); //判断两数大小,大数做被除数 if(n<=m){ temp=m; m=n; n=temp; } p=m*n; //求最大公约数,辗转相除法 while(1){ r=n%m; if(r!=0){ n=m; m=r; } else break; } printf("最大公约数:%dn",m); printf("最小公倍数:%dn",p/m);//原始m*n值除以最大公约数就是最小公倍数 } return 0; } //把数组中的全部元素赋值到另一个数组中
解题思路
1-定义两个数组,给第一个数组赋随机值
2-直接进行元素拷贝#includevoid main() { int a[5],b[5]; int i=0,j=0; for(i;i<5;i++) { a[i]=rand()%100+1;//获得一个1-100的伪随机数,赋给数组元素 printf("a[%d]=%dt",i,a[i]); } printf("n"); i=0; while(i<5) { b[j++]=a[i]; i++; } for(j=0;j<5;j++) { printf("b[%d]=%dt",j,b[j]); } } //输入5名学生的分数并显示出60分以上的一览表
解题思路
1-定义两个数组,一个存放所有学生分数,一个存放及格学生分数下标
2-for语句遍历数组,if语句比较#include#define NUM 5 //学生人数 void main() { int i,j=0; int sum=0;//及格学生人数 int a[NUM],b[NUM]; for(i=0;i =60) { b[j++]=i;//记录及格学生下标 } } printf("及格学生分数一览表:n"); for(i=0;i //输入5名学生的分数并显示出其中的最高分和最低分
解题思路
1-定义一个数组存放五名学生分数
2-用for语句比较得出最大值、最小值#includevoid main() { int i,j; double a[5]; for(i=0;i<5;i++) { printf("输入%d号学生分数:",i+1); scanf("%lf",&a[i]); } double max=a[0],min=a[0]; for(i=0;i<5;i++) { if(maxa[i]) min=a[i]; } printf("最高分为:%lfn最低分为:%lf",max,min); } //把数组中的全部元素倒序赋值到另一个数组中
解题思路
1-从数组中按下标从小到大取元素值,赋给零一数组中下标从大到小赋值#includevoid main() { int a[]={1,2,3,4}; int b[4],i; for(i=0;i<4;i++) { b[i]=a[3-i]; } i=0; while(i<4) { printf("%2d",b[i]); i++; } } //对数组中的全部元素进行倒序排列
解题思路
1-定义一个数组,并初始化
2-利用for语句实现倒叙排列#includevoid main() { int a[5],i,j; for(i=0;i<5;i++) { a[i]=rand()%100+1; printf("a[%d]=%dt",i,a[i]); } printf("n"); for(i=0;i<(5/2);i++) { int j=a[i]; a[i]=a[4-i]; a[4-i]=j; } for(i=0;i<5;i++) { printf("a[%d]=%dt",i,a[i]); } } //依次把1,2,3,4,5赋值给数组每个元素并显示
解题思路
1-定义一个数组
2-用for循环结构实现连续输入#includevoid main() { int a[5],i; for(i=0;i<5;i++) { printf("请输入a[%d]:",i); scanf("%d",&a[i]); } i=0; while(i<5) { printf("a[%d]=%2dt",a[i]); i++; } //用for语句 for(i;i<5;i++) { printf("a[%d]=%2dt",i,a[i]); } } 创建一个链表并初始化
#include#include // 创建一个链表 typedef struct student{ int score; struct student *next; }linkList; //此时定义结构体变量时,可以直接用linkList定义变量 linkList *creat(int n); //原型声明 void main() { } //初始化一个链表,n为链表节点个数 linkList *creat(int n){ linkList *head,*node,*end;//定义头结点、普通结点 、尾结点 head=(linkList *)malloc(sizeof(linkList)); end=head;//若是空链表则头尾结点一样 int i; for(i=0;i score); end->next=node; end=node; } end->next=NULL;//结束创建 return head; } //输入一个整数,转化为字符串输出
解题思路
1-采用递归会简单些#includevoid change(int n){ if(n/10==0){ printf("转化后字符串为:%c",n%10+'0'); } else{ change(n/10) ; printf("%c",n%10+'0'); //此输出语句不可少,否则只输出最高位对应字符 } } int main(){ int n; while(1){ //让程序可以一直运行 printf("n输入一个整数:"); scanf("%d",&n); if(n<0) puts("重新输入"); else{ change(n); } } return 0; } Strcnpy函数
#include#include void main(){ char str1[10]="12345",str2[10]="6788"; strncpy(str1,str2,2); puts(str1); //str2的前两个字符替换str中的前两个 } //汉诺塔递归:n个盘子从A移动到C,一次只能移动一个,大盘在下,小盘在上
解题思路
1-先将n-1个盘子从A移到B
2-然后可以将第n个盘子从A移动到C move(n,A,C)
3-我们再将n-2个盘子从B移到A
4-第n-1个移到C
5-重复上面步骤#includeint m; void hanoi(int n,char a,char b,char c){ m++;//移动次数 if(n==1) //一定要设置结束条件 printf("%c-->%cn",a,c); else{ hanoi(n-1,a,c,b);//n-1个塔移到B,C做辅助塔 printf("%c-->%cn",a,c);//A柱上第n个盘子 直接移到C柱 ,此输出语句不能少 hanoi(n-1,b,a,c);//把B柱上n-1个盘子移到C柱 } } int main(){ int n; while(1){ m=0; printf("输入塔数:"); scanf("%d",&n); if(n<=0) printf("the data error!n"); else hanoi(n,'A','B','C');//n个塔移到C,B做辅助塔 printf("循环次数:%dn",m); } return 0; } Strlen()函数
#include#include int main(){ char str1[] = "1234567890"; char str2[] = "china"; int l1 = strlen(str1); int l2 = strlen(str2); int l3; strncpy(str1, str2, 5); printf("%sn", str1); l3 = strlen(str1); printf("%d %d %dn", l1, l2, l3); // 输出10,5,10,不包括' '符号 return 0; } //输出杨辉三角形
//杨辉三角形各元素的值是(a+b)^n的各项系数解题思路
1-第一列和对角线为1
2-其余元素为上一行依次两个元素的和
3-二维数组存储各元素的值#include#define LINE 10 int main(){ int a[LINE][LINE],i,j; for(i=0;i //预定义宏
__DATE__ 当前日期,一个以 “MMM DD YYYY” 格式表示的字符常量。__TIME__ 当前时间,一个以 “HH:MM:SS” 格式表示的字符常量。__FILE__ 这会包含当前文件名,一个字符串常量。__LINE__ 这会包含当前行号,一个十进制常量。__STDC__ 当编译器以 ANSI 标准编译时,则定义为 1。s
#includevoid main(){ printf("File:%sn",__FILE__); printf("Date:%sn",__DATE__); printf("Time:%sn",__TIME__); printf("Line:%dn",__LINE__); printf("ANSI:%dn",__STDC__); } //编写函数,交换两个字符串,要求形参以指针形式出现
△注意和交换两个数字不太一样
#include#include void change(char *a,char *b){ char p[100]; strcpy(p,a); strcpy(a,b); strcpy(b,p); //不能用赋值符直接赋值 puts("交换后的字符串如下"); puts(a); puts(b); } int main(){ char a[100],b[100]; gets(a); gets(b); change(a,b); return 0; } //递归求函数值
#include//递归函数 int total(int n){ int c; if(n==1) c=1; else c=total(n-1)+n+1; } int main(){ int n; scanf("%d",&n); printf("%d",total(n)); return 0; } 二维数组
#include#include int main() { char w[20],a[5][10]={"abcdef","ghijkl","mnopq","rstuv","wxyz"}; int i; for(i=0;i<5;i++) { w[i]=a[i][strlen(a[i])-1]; } w[5]=' '; puts(w); } 用指针和数组两种方法实现如下功能:将一个字符串逆序存放
要求:主函数中完成输入和输出字符串逆序功能用子函数完成
#include#include #define N 20 //指针法 //void revert(char *i_pointer,int n); //逆序函数(指针法) void revert(char *i_pointer,int n){ char *i,*j,temp; for(i=i_pointer,j=i_pointer+n-1;i<=j;i++,j--){ temp=*i;*i=*j;*j=temp; } } //逆序函数(数组法) void revert(char str[] 此处可以不确定个数 ,int n){ int i,j,temp; for(i=0,j=n-1;i<=j;i++,j--){ temp=str[i]; str[i]=str[j]; str[j]=temp; } } //主函数,实现输入、输出 int main(){ char str[N]; gets(str);//输入时遇到空格不会结束 revert(str,strlen(str)); puts(str); return ; } 交换两个数值
#includevoid fun(int *p,int *q) { int t; t=*p;*p=*q;*q=t; *q=*p; } void main() { int a=0,b=9; fun(&a,&b); printf("%d%d",a,b); } 预定义指令
#define LEFTTER 1 #includevoid main(){ char str[20]="C Language",c; int i=0; while((c=str[i])!=' ') { i++; #ifdef LEFTTER // 判断某个宏是否被定义,若已定义,执行随后的语句 if(c>='a'&&c<'z') c=c+1; else if (c=='z') c=c-25; #else // 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else if(c>='B'&&c<='Z') c=c-1; else if(c=='A') c=c+25; #endif // #if, #ifdef, #ifndef这些条件命令的结束标志. printf("%c",c); } } 一个数组十个元素,编写程序删除所有值为n的元素
要求:主函数完成n的输入,数组元素的输入以及删除后的数组输出删除功能用子函数完成
#include#define N 10 int j=0; //删除函数 void delete(int arr[],int n){ int i,k; for(i=0;i 结构体变量引用
#includevoid main() { struct st { int x;int *y; }*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; printf("%dn%d",++pt->x,*pt->y); } //编程求1!+2!+。。。+50!
#includeint main(){ double i,sum=0,n=1; for(i=1;i<=50;i++){ n=n*i; sum=sum+n; } printf("%d",sum); return 0; }



