0
点赞
收藏
分享

微信扫一扫

学习通A类程序题答案

海牙秋天 2022-04-25 阅读 59
c语言

1题。

#include<stdio.h>
#include<math.h>
int main()
{
double a;//题目中输入了小数,用double类型的变量
scanf("%lf",&a);
if(a<0) printf("less than 0");
else printf("%d",(int)sqrt(a));//强制类型转换,在这个数的前面加上"(转换后的变量类型)"
return 0;
}

2题(半对,第5组未通过)

#include<stdio.h>

int main()

{

 int a,i,b,t;

 scanf("%d",&a);

 t=a;

 for(i=0;t>0;i++)

 { t/=10;}//得到a的位数


 if(i==1) printf("%d has 1 digit ",a);

 else printf("%d has %d digits ",a,i);

 
for(i=0;a>0;i++)

 {

  b=a%10;

  a=a/10;

  printf("%d",b);//输出各个数

  if(a!=0) printf(",");//判断是","还是"."

  else printf(".");

 }
return 0;

}

3题

#include<stdio.h>
#include<math.h>
int main()
{
	int m,n,i,j,p,q;
	for(m=1;m<10;m++)
	{
		for(n=0;n<10;n++)
		{
			for(i=0;i<10;i++)
			{
				for(j=0;j<10;j++)
				{
					p=m*1000+n*100+i*10+j;
					q=pow(m,4)+pow(n,4)+pow(i,4)+pow(j,4);
					if(p==q) printf("%d\n",p);
				}
			}
		}
	}
}

4题

#include<stdio.h>
#include<math.h>
void printline(int n)//输出第n行的函数
{
	int i;
	for(i=0;i<fabs(n-6);i++)
	{
		printf(" ");
	}
	for(i=0;i<(2*(n<6?n:12-n)-1);i++)
	{
		printf("$");
	}
	if(n!=11) printf("\n"); //最后一行是第11行,除最后一行外都实现换行
}
int main()
{
	int i,m;
	scanf("%d",&m);
	for(i=1;i<=m;i++)//进行循环,输出前n行
	{
		printline(i);
	}
	return 0;
}

5题

#include<stdio.h>

int main()

{

	int i,p=0,q=0,sum=0;

	for(i=1;i<=25;i++)//每次循环增加2个数,共50个数

	{

		q = 2*i;

		p += q;sum += p;

		if(i==25) printf("%d ",p);//0是第一项,第50项就是第25次循环的第1个数

		p += q;sum += p;

	}

	printf("%d",sum-p);//0是第1项,但sum为第2项到第51项的和,当前p为第51项,需要去掉它

	return 0;

}

​

6题

#include<stdio.h>
#include<math.h>
int main()
{
	int a,n,i=0;
	int x=0,sum=0;
	scanf("%d %d",&a,&n);
	for(i=0;i<n;i++)
	{
		x += a*pow(10,i);//第i+1个数 
		sum += x;
	}
	printf("%d",sum);
	
}

7题

#include<stdio.h>
int main()
{
	int k;
	double sum=0;
	for(k=1;k<101;k++)
	{
		if(k<11) sum += k+k*k+1.0/k;
		else if(k<51) sum += k+k*k;
		else sum += k;
	}
	printf("%.7f",sum);
	return 0;
}

8题

#include<stdio.h>
#include<math.h>
int main()
{
	int i;
	double high=100,sum=100;
	for(i=0;i<10;i++)//i用来计数反弹次数
	{
		high *= 1.0/2;
		sum += high*2;
		if(i==8)//此时为第9次反弹,即第10次落地
		printf("%.9f ",sum);
	}
	printf("%.9f",high);
	return 0;
}

9题(算法设计不足,错的)

#include<stdio.h>
int main()

{
	int n,i;
	long long int sum=0,p=1;
	scanf("%d",&n);

	for(i=1;i<=n;i++)

	{
	p *= i;//当前阶乘
	sum += p;
    }

	printf("%lld",sum);
	return 0;

}

​
举报

相关推荐

0 条评论