(1)有一函数:
输入X的值,根据函数计算y的值。
#include<stdio.h>
int main(){
int x,y;
scanf("%d",&x);
if(x<-5) y=-3*x+10;
else if(-5<=x&&x<0) y=x;
else if(x=0) y=0;
else if(0<x&&x<=5) y=2*x;
else if(x>5) y=4*x-10;
printf("%d",y);
return 0;
}
(2)由键盘任意输入3个数,实现按降序输入此三个数。
#include<stdio.h>
int main(){
int x,y,z,t;
printf("请输入三个任意数:");
scanf("%d%d%d",&x,&y,&z);//一开始有个错误 “%d,%d,%d”控制运算符用 逗号隔开了,导致 前两个数默认为0了
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("%d,%d,%d",x,y,z);
return 0;
}
(3)输入20个学生的成绩,统计各个分数段的人数。分数段为90及90以上,80–89,70–79,60–69,60以下。
#include <stdio.h>
int main()
{
int score[20];//定义一个数组,用来存储20个学生成绩
int i,A=0,B=0,C=0,D=0,E=0;//用A,B,C,D,E,来统计各个分数段的人数
printf("请输入20位学生成绩:") ;
for(i=0;i<20;i++) //用for循环来写
{
scanf("%d",&score[i]) ;//键盘输入20位学生成绩
if(score4[i]>=90)
A++; //分数90及90以上的
else if(score[i]>=80)
B++; //分数80--89的
else if(score[i]>=70)
C++; //分数70--79的
else if(score[i]>=60)
D++; //分数60--69的
else
E++; //60以下的
}
printf("分数90及90以上的人数:%d\n",A) ;
printf("分数80--89的人数:%d\n",B) ;
printf("分数70--79的人数:%d\n",C) ;
printf("分数60--69的人数:%d\n",D) ;
printf("分数60以下的人数:%d\n",E) ;
return 0;
}
(4)输入一行字符,分别统计其中包含的数字,字母和其他字符的个数。
#include <stdio.h>
int main()
{
char c;
printf("请输入一组字符:");
int zimu=0,num=0,other=0;
while((c=getchar())!='\n')//while循环,直到用户按enter结束,
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
zimu++;
else if(c>='0'&&c<='9')
num++;
else
other++;
}
printf("字母有%d个,\n数字有%d个,\n其他有%d个\n",zimu,num,other);
return 0;
}
(5)(6)(7)
(8)输入3个点坐标,判断他们是否在一条直线上。
【分析】:首先,2点确定一条直线,可以先求出直线方程,然后将第三点代入即可。
#include <stdio.h>
int main(){
double x1, y1, x2, y2, x3, y3;
double k, b;
//输入3个坐标:
printf("输入点A:x, y:");
scanf("%lf, %lf", &x1, &y1);
printf("输入点B:x, y:");
scanf("%lf, %lf", &x2, &y2);
printf("输入点C;x, y:");
scanf("%lf, %lf", &x3, &y3);
//得到三个点后,用前两个点计算出直线的表达式Y=K*X +b
k = (y2-y1)/(x2-x1);
b = y1-k*x1;
if(y3==k*x3+b)
printf("三点在一条直线上\n");
else
printf("三点不在一条直线上\n");
return 0;
}