循环结构
1.计算阶乘:
#include <stdio.h>
void main()
{
int i,n;
int sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%d!=%d",n,sum);
printf("\n");
}
2.取一个数的个十、百、千位:
int x = 123;
int a,b,c;
a=x/1%10;//个位
b=x/10%10;//十位
c=x/100%10;//百位
3.求质数
#include <stdio.h>
#include <math.h>
void main(){
int m; // 输入的整数
int i; // 循环次数
int k; // m 的平方根
printf("输入一个整数:");
scanf("%d",&m);
// 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
if(m%i==0)
break;
// 如果完成所有循环,那么m为素数
// 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k
if(i>k)
printf("%d是素数。\n",m);
else
printf("%d不是素数。\n",m);
return 0;
}
选择结构结构
1.计算1!-3!+5!-7!......(-1^n)(2n-1)的阶乘数
#include <stdio.h>
void main()
{
int i,j,n,k;//定义自变量
int sum=1,max=0;//定义和函数变量
scanf("%d",&n);//打印输入n
for(i=1;i<=2*n-1;i++)//循环累加
{
sum=sum*i;//求阶乘
if(i%2==0)//条件判断除偶数项
{
//跳过
}
else if(i%3==0)//条件判断
{
max=max-sum;//第三个次序变负数
}
else//其余
{
max=max+sum;//求和
}
}
printf("sum=%d",max);//打印输出
printf("\n");//打印换行
}
2.
math库
1.math库的sqrt的应用
sqrt是求平方根为double类型
#include<stdio.h>
#include<math.h>
void main()
{
double a,b=4;
a=sqrt(b);
printf("%lf",a);
}
2.math库fabs的应用
取绝对值(为double型)
double a=-4;
double y;
y=fabs(a);
输出结果为4
易出的错误
一、printf打印失败的原因:
(1)对应的占位符不正确导致打印失败
(2)变量最初没有赋值就进行运算
(3)两个占位符之间不能有“,”
scanf("%d%d",&x,&y);
二、
数组下标是从零开始的
如:sum[1,2,3,4,5]
sum[4]的值为5
补充:在使用数组元素时,c语言编译系统不检查下标越界
三、