华南农业大学C语言程序设计课后习题(第五章)
18046 字母分类统计
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
输入一行以换行符结束的字符,统计并输出其中英文字母、数字、空格和其它字符的个数。
输入格式
一行字符,以换行符结束
输出格式
一行4个数字分别为:英文字母、数字、空格和其它字符的个数,两数据之间以一个空格分隔
输入样例
ABC 456!
#include<stdio.h>
int main()
{
int e=0,n=0,s=0,o=0;
char ch;
while((ch=getchar())!='\n')
{
if('0'<=ch&&ch<='9')
n++;
else if(65<=ch&&ch<=90||97<=ch&&ch<=122)
e++;
else if(ch==' ')
s++;
else
o++;
}
printf("%i %i %i %i",e,n,s,o);
return 0;
}
18047 水仙花数
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
输出所有的水仙花数。所谓水仙花数是一个3位的正整数,其各位数字的立方和等于这个数本身。
例如,153是水仙花数,因为13+53+3^3=153。 ^代表上标
输入格式
无
输出格式
一行一个,由小到大输出所有水仙花数
输入样例
无
输出样例
略
#include<stdio.h>
int main()
{
int i,b,s,g;
for(i=100;i<=999;i++)
{
g=i%10;
s=i/10%10;
b=i/100;
if((g*g*g+s*s*s+b*b*b)==i)
printf("%d\n",i);
}
return 0;
}
1037 计算数列和
时间限制:1000MS 内存限制:65536K
提交次数:5299 通过次数:3882
题型: 编程题 语言: G++;GCC
Description 有数列:
编程实现,由键盘输入n,计算输出数列前n项和。(结果保留四位小数,提示:要使用double,否则精度不够)
输出格式
请按格式输出
输入样例
20
输出样例
32.6603
#include<stdio.h>
int main()
{
double i,q=1,z=2,t,a=2,n;
scanf("%lf",&n);
for(i=1;i<n;i++)
{
t=q+z;
a+=t/z;
q=z;
z=t;
}
printf("%.4f",a);
return 0;
}
18048 自由落体
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
一个球从100米的高度自由落下,每次落地后弹起的原来高度的一半。计算并输出第n次落地时,共经过了多少米,第n次弹起的高度是多少?结果显示3位小数。
输入格式
从键盘输入一个数n(n>0)
输出格式
输出两个数,分别为共经过的米数和第n次弹起的高度,以一个空格分隔
输入样例
1
输出样例
100.000 50.000
#include<stdio.h>
int main()
{
double sum=100,n,i,s=50;
scanf("%lf",&n);
for(i=1;i<=n-1;i++)
{
sum+=s*2;
s/=2;
}
printf("%.3f %.3f",sum,s);
return 0;
}
18049 迭代法求平方根
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
使用迭代法求a的平方根。求平方根的迭代公式如下,要求计算到相邻两次求出的x的差的绝对值小于1E-5时停止,结果显示4位小数
输入格式
输入一个非负实数a
输出格式
计算并输出平方根
输入样例
16
输出样例
4.0000
#include<stdio.h>
#include<math.h>
int main()
{
double a,x0=1,x1=1,h;
scanf("%lf",&a);
do
{
x0=x1;
x1=(1.0/2)*(x0+a/x0);
}
while(fabs(x1-x0)>=1E-5);
printf("%.4f",x1);
return 0;
}
18050 打印三角形
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
编写程序,输入整数n,输出n行的字符图案。例如n=5时输出:
输入格式
输入一个整数
输出格式
输出2*n-1行的三角形
输入样例
2
输出样例
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=2*n-1;i++)
{
for(j=1;j<=abs(n-i);j++)
printf(" ");
for(;j<=n;j++)
printf("*");
printf("\n");
}
return 0;
}
18051 勾股数
时间限制:1000MS 内存限制:65535K
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC;VC
Description
若三个正整数a、b、c,其中a<=b<=c,满足a2+b2=c2,其中表示上标,称这三个数为“勾股数”,例如:3、4、5是勾股数。编程输出不大于n的所有勾股数。
输入格式
输入一个数(n<=100)
输出格式
输出所有勾股数,按第1个数字由小到大排列(若第1个数字相同,按第2个数字排)
输入样例
5
输出样例
3 4 5
#include<stdio.h>
int main()
{
int i,j,k,z,n1,n2,n3;
scanf("%d",&z);
for(n1=1;n1<=z;n1++)
{
for(n2=n1;n2<=z;n2++)
{
for(n3=n2;n3<=z;n3++)
{
if(n1*n1+n2*n2==n3*n3)
printf("%i %i %i\n",n1,n2,n3);
}
}
}
return 0;
}