1.三数比较大小并按序输出
(1)源代码
#include <stdio.h>
int main()
{
int x,y,z,t;
scanf("%d %d %d",&x,&y,&z);
if(x>y)
{
t=x;x=y;y=t;
}
if(x>z)
{
t=x;x=z;z=t;
}
if(y>z)
{
t=y;y=z;z=t;
}
printf("small to big: %d %d %d\n",x,y,z);
return 0;
}
(2)思路
定义一个额外变量让x,y,z进行值的交换,让x,y,z互相都进行比较,然后按从小到大的顺序依次输出。
2.输出n行星号三角形
(1)源代码
#include<stdio.h>
int main()
{
int n,a,b,c;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
for(b=13;b>=a;b--)
{
printf(" ");
}
for(c=1;c<=2*a-1;c++)
{
printf("*");
}
printf("\n");
}
return 0;
}
(2)思路
每一行的空格逐级递减,星号逐级递增,利用嵌套循环实现。最外层循环的遍历每一行,内层第一个循环遍历每一行的空格,内层第二个循环遍历每一行的星号。
3.计算点到线的距离
(1)源代码
#include<stdio.h>
#include<math.h>
int main()
{
double x0,y0,A,B,C;
scanf("%lf%lf",&x0,&y0);//输入点P的坐标
scanf("%lf%lf%lf",&A,&B,&C);//输入直线L的A、B和C
printf("%f",fabs((A*x0+B*y0+C)/sqrt(A*A+B*B)));//输出距离
return 0;
}
(2)思路
记得引用math头文件,才能调用fabs函数计算绝对值,sqrt函数计算平方根。
4.方程能否构成圆
(1)源代码
#include <stdio.h>
#include <math.h>
int main()
{
int flag=1;//flag=1,circular;flag=0,no circular
double A,B,D,E,F,d,e,f,s;
scanf("%lf%lf%lf%lf%lf",&A,&B,&D,&E,&F); //输入方程的5个参数
d=D/A;
e=E/A;
f=F/A;
s=sqrt((d*d+e*e-4*f)/4);
if(A!=B || A==0 && B==0)
{
flag=0;
}
else
{
if((d*d+e*e-4*f)/4>0)
{
flag=1;
}
else{
flag=0;
}
}
if(flag==1)
{
printf("Center of a circle is(%.2f,%.2f)\n",-d/2,-e/2);
printf("Radius of the circle is %.2f\n",s);
}
if(flag==0)
{
printf("No circle");
}
return 0;
}
(2)思路
与第三题类似。
5.斐波那契数列
(1)源代码
#include <stdio.h>
int feibo(int n)
{
int i;
int a1=1;
int a2=1;
int a3=1;
for(i=2;i<n;i++)
{
a3=a1+a2;
a1=a2;
a2=a3;
}
return a3;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",feibo(n));
return 0;
}
(2)思路
将斐波那契数列前三个数初始化为1,然后利用循环将前两个数相加,再把第二个数赋值给第一个数,第三个数赋值给第二个数,然后进行下一次循环。
6.简单分段函数计算
#include <stdio.h>
int main()
{
float x;
float y=0;
scanf("%f",&x);
if(x>=3){
y=3*x+2;
}
if(x>=0 && x<3){
y=(x*x)/(x+1);
}
if(x<0){
y=-x;
}
printf("y=%.1f",y);
return 0;
}
#include <stdio.h>
int main()
{
double x,y;
scanf("%lf",&x);
if(x<=100){
y=0.51*x;
}
else if(x>100){y=0.65*x;
printf("%.2f",y);
return 0;
}