【20240121】练习

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

  • 先算出 \bigtriangleup =b^{2}-4ac
  • 然后将其带入求根公式 \frac{-b\pm \sqrt{\triangle }}{2\times a}得出两根

易错点:

 "="和"==";

算数运算的优先级;

#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);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值