1.请输入一个4位数,输出他的后三位
知识点:取千位除1000%10,取百位除100%10,取十位除10%10,取个位直接对10取余;
#include "stdio.h"
#include "math.h"
void main()
{
int a,h;
printf("请输入一个4位数,输出他的后三位");
scanf("%d",&a);
h=a/100%10*100+a/10%10*1+a%10;
printf("后三位为:%d\n",h);
}
2.某商品价格为23.62,输入商品数量,输出应付金额
- 若数量<=5 原价
- 若数量在6一10打95折
- 若数量在11一20打9折
- 若数量在21以上(含)打8折
#include "stdio.h"
void main()
{
float a=23.62,s=1,sum;
printf("请输入商品的数量:");
scanf("%f",&s);
if(s>=21) sum=s*a*0.8;
else if(s>=11&&s<=20) sum=s*a*0.9;
else if(s>=6&&s<=10) sum=s*a*0.95;
else sum=s*a;
printf("价格是:%.2f",sum);
}
3.输入a,b,c,求一元二次方程ax2+bx+c=0的根x1和x2
- 先算出
- 然后将其带入求根公式 得出两根
易错点:
"="和"==";
算数运算的优先级;
#include "stdio.h"
#include "math.h"
void main()
{
float a,b,c,d,x1,x2;
printf("请输入abc的值");
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0||d==0)
{
x1=(-b+sqrt(d))/(2*a); //加括号
x2=(-b-sqrt(d))/(2*a);
printf("该方程的根:\nx1=%.2f\nx2=%.2f\n",x1,x2);
}else printf("该方程无解");
}
4.输入若干个4位整数,统计千位>百位>十位>个位的数的个数,输入-1终止输入
- break:跳出循环
#include "stdio.h"
void main()
{
//输入若干个4位整数,统计千>百>十>个的数的个数,输入一1终止输入 7321,8210
int s,i;
printf("请输入数字,输入-1终止输入:");
do
{
scanf("%d",&s);
if(s==-1) break;
if(s/1000%10>s/100%10&&s/100%10>s/10%10&&s/10%10>s%10) i++;
}while(1);
printf("这样的数有%d个",i);
}
5.输入若干个0——100之间的成绩,统计及格学生的平均分
#include "stdio.h"
void main()
{
//输入若干个0-100之间的成绩,统计及格学生的平均分
float f,i,s,p;
printf("请输入分数,输入-1终止输入:");
do
{
scanf("%f",&f);
if(f==-1) break;
if(f>60)
{
i++;
s+=f;
}
}while(1);
printf("平均分是:%.2f",p=s/i);
}
6.有一数列(1*2)/(3*4),(2*3)/(4*5),(3*4)/(5*6),(4*5)/(6*7)求该数列的前20项之和
输出为12.98
#include "stdio.h"
void main()
{
//有一数列(1*2)/(3*4),(2*3)/(4*5),(3*4)/(5*6),(4*5)/(6*7)求该数列的前20项之和
float a,b,s=0,i=0;
for(a=1,b=3;i<20;a++,b++,i++)
{
s+=(a*(a+1))/(b*(b+1));
// printf("%f\n",i);
}
printf("%.2f",s);
}
7.求2/4+4/7+6/10+8/13+10/16求前20项之和
输出为12.63
#include "stdio.h"
void main()
{
//求2/4+4/7+6/10+8/13+10/16求前20项之和
float a,b,i=0,s=0;
for(a=2,b=4;i<20;a+=2,b+=3,i++)
{
s+=a/b;
}
printf("前二十项的和=%.2f\n",s);
}