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