目录
一、求二元一次方程的根
二、求分段函数
三、求最大公约数
四、求最大公约数和最小公倍数
五、求圆周率π的近似值(精确到小数点第5位或第7位)
六、输出所有的“水仙花数
七、判断闰年的方法
八、输出某范围全部闰年
九、数据逆序输出
十、数据逆置输出
一、求二元一次方程的根
#include<stdio.h>
#include<math.h> //程序中要调用求平方根 sqrt
int main()
{
double a,b,c,disc,x1,x2,p,q; //disc是判别式 b*b-4*a*c
printf("输入二元一次方程方程的系数a,b,c:\n");
scanf("%lf%lf%lf",&a,&b,&c); //输入双精度浮点型变量的值要用格式声明 %lf
disc=b*b-4*a*c;
if(disc<0) //b*b-4*a*c<0
printf("此方程无解\n");
else //b*b-4*a*c<0
{
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("方程有解,两根分别是:\nx1=%.2f\nx2=%.2f\n",x1,x2);
}
return 0;
}
二、分段函数
如
#include <stdio.h>
int main()
{
int x,y;
printf("输入x的值,输出y相应的值:\n");
scanf("%d",&x);
if(x < 1)
{
y= x;
printf("x=%d y=%d",x,y);
}
else if( (x < 10) | (x >= 1) )
{
y= 2*x - 1;
printf("x=%d y=%d",x,y);
}
else
{
y= 3*x - 11;
printf("x=%d y=%d",x,y);
}
// printf("x=%d y=%d,2*3=%d,2/3=%d,2-3=%d,2+3=%d",x,y,2*3,2/3,2-3,2+3);
return 0;
}
三、9X9乘法表
#include<stdio.h>
int main()
{
int row,colum; //row行 colum列
for(row=1;row<=9;row++)
{
for(colum=1;colum<=row;colum++)
printf("%d*%d=%-5d",row,colum,row*colum);
printf("\n");
}
return 0;
}
注意:%-md:输出格bai式为整形,长度为m(输出最小长度),左对齐;比如-5d,-是左对齐打印,5是占5个字符位,d是以整数形式打印。
C语言中的格式占位符:
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
四、求圆周率π的近似值(精确到小数点第5位或第7位)
#include<stdio.h>
#include<math.h> //程序中要用到数学函数 fabs (求绝对值)
int main()
{
int sign=1; //sign表示数值的符号
double pi=0.0,n=1.0,term=1.0,k; //pi开始多项式的值,最后表示 π的值,n表示分母
while(fabs(term)>=1e-6) //term的绝对值是否大于或等于10^-6(精确到小数点第5位 )
{ //1e-8(精确到小数点第7位 )
pi=pi+term;
n=n+2; //n+2是下一项分母
sign=-sign;
term=sign/n; //term下一项分子的值
}
pi=pi*4; //多项式的和pi乘以4,才是π的近似值
printf("输出π的近似值π=%10.8f\n",pi); //输出π的近似值
return 0;
}
五、三个数由小到大排序(注意:如果要求由大到小排序,可将 > 全部换成 < 即可)
#include<stdio.h>
int main()
{
float a,b,c,t; //定义4个单精度浮点型变量a,b,c,t
printf("输入三个数值a,b,c:\n"); //双引号内的普通字符原样输出并换行
scanf("%f%f%f",&a,&b,&c); //输入变量a,b,c的值
if(a>b) //如果a大于b,借助中间变量t实现a与b值得互换
{t=a;a=b;b=t;}
if(a>c) //如果a大于c,借助中间变量t实现a与c值得互换
{t=a;a=c;c=t;}
if(b>c) //如果b大于c,借助中间变量t实现b与c值得互换
{t=b;b=c;c=t;}
printf("从小到大排序后输出结果:\n\n");
printf("只保留整数: %.0f %.0f %.0f\n",a,b,c); //结果遵循四舍五入
printf("保留一位小数: %.1f %.1f %.1f\n",a,b,c);
// printf("保留不同位小数:%.0f %.1f %.2f\n",a,b,c);
return 0;
}
六、输出所有的“水仙花数”
所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如:153是水仙花数,因为 153 = 1^3 + 3^3 + 5^3
#include<stdio.h>
int main()
{
int a=100,g,s,b,i;
printf("输出所有 “水仙花数 ”:\n\n");
for(i=a;i<1000;i++)
{
b=i/100; //百位:取商 153/100=1
s=i/10-b*10; //十位:取商 153/10-10=15-10=5
g=i%10; //个位:取余 153%10=3
if(i==g*g*g+s*s*s+b*b*b)
printf("\t%d",i);
}
printf("\n");
return 0;
}
七、判断闰年的方法
判断该年年份是闰年的条件:
①、能被4整除,但不能被100整除
②、能被400整除
#include<stdio.h>
int main()
{
int year,leap;
printf("输入一个年份year:");
scanf("%d",&year);
if((year%4==0 && year%100!=0) || (year%400==0))
leap=1;
else
leap=0;
if(leap)
printf("\n\t%d是闰年\n",year);
else
printf("\t%d不是闰年\n",year);
return 0;
}
八、输出某范围全部闰年
#include<stdio.h>
int main()
{
int year,i;
i=0;
printf("输出2020年~2500年的全部闰年:\n\n\t");
for(year=2020;year<=2500;year++)
{
if((year%4==0 && year%100!=0) || (year%400==0))
{
printf("%d ",year); //双引号内可换成 (%d\t)
i++;
if(i%10==0) //每行输出10个闰年换行
printf("\n\t"); //换行并横向空格
}
}
printf("\n"); //可不要,只是为了输出好看
return 0;
}
九、数据逆序输出
#include<stdio.h>
int main()
{
int i,a[10];
printf("原始数据:\n");
for(i=0;i<=9;i++)
a[i]=i;
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n逆序数据:\n");
for(i=9;i>=0;i--)
printf("%d ",a[i]);
return 0;
}
十、数据逆置输出
#include<stdio.h>
int main()
{
int i,a[10],j,t;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0,j=9;i<j;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("逆置:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}