1.计算n的阶乘。
#include<stdio.h>
int main()
{
int i;
int n;
int t=1;
printf("请输入一个整数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*i;
}
printf("%d!=%d\n",n,t);
return 0;
}
2.计算1!+2!+3!+4!+...+10!
#include<stdio.h>
int main()
{
int i,step=1;
int sum=0;
for(i=1;i<=10;i++)
{
step=step*i;
sum=sum+step;
}
printf("%d\n",sum);
return 0;
}
3.编写代码,演示多个字符从两边移动,向中间汇聚。
#include<stdio.h>
#include<windows.h>
int main()
{
char a1[]="#############";
char a2[]="hello,jingjie";
int len=strlen(a1);
int i=0;
int j=len-1;
printf("%s\n",a1);
while(i<=j)
{
Sleep(1000);
a1[i]=a2[i];
a1[j]=a2[j];
i++;
j--;
Sleep(1000);
printf("%s\n",a1);
}
return 0;
}
4.求ax^2+bx+c=0的解。
#include<stdio.h>
#include<math.h>
#define ESP 0.0000000001
int main()
{
float a=0.0,b=0.0,c=0.0;
printf("请输入三个系数:\n");
scanf("%f%f%f",&a,&b,&c);
if((a>-ESP)&&(a<ESP))
{
printf("不是一元二次方程\n");
}
else
{
float d=b*b-4*a*c;
if((d>-ESP)&&(d<ESP))
{
printf("有两个相等的根:\n%f\n",(-b)/2*a);
}
else if(d>0)
{
printf("有两个不同的根:\n%f %f\n",((-b)+sqrt(d))/2*a,((-b)-sqrt(d))/2*a);
}
else
{
printf("有两个共轭复根\n");
}
}
5.写一个程序返回参数二进制中1的个数;
#include<stdio.h>
int count_one_bit(int n)
{
int count=0;
while(n)
{
count++;
n=n&(n-1);
}
return count;
}
int main()
{
int num=0;
int ret=0;
printf("请输入一个整数:");
scanf("%d",&num);
ret=count_one_bit(num);
printf("该数的二进制中的个数为:%d\n",ret);
return 0;
}
6.求两个数的最大公约数。
#include<stdio.h>
int main()
{
int num1,num2;
printf("请输入两个数:");
scanf("%d%d",&num1,&num2);
printf("%d,%d的最大公约数为:",num1,num2);
while(num1%num2!=0)
{
int tmp=num1%num2;
num1=num2;
num2=tmp;
}
printf("%d\n",num2);
return 0;
}