头歌实验---C/C++程序设计:实验四:循环结构程序设计
目录
第1关:C循环-求平均成绩
任务描述
答案代码
第2关:C循环-求各位数字之积
任务描述
答案代码
第3关:C循环-水仙花数
任务描述
答案代码
第4关:C循环-寻找完数
任务描述
答案代码
第5关:分数求和
任务描述
答案代码
第6关:小球自由落体运动
任务描述
答案代码
第7关:最大公约数和最小公倍数
任务描述
答案代码
第8关:字符串中各类字符数的统计
任务描述
答案代码
第1关:C循环-求平均成绩
任务描述
答案代码
#include<stdio.h>
int main(void)
{ int a,i;
double b;
double average,sum;
scanf("%d",&a);
if (a<=0)
{
printf("the number of students:the scores:average=0.00");
}
else
{
for(i=0;i<a;i++)
{
scanf("%lf",&b);
sum=b+sum;
}
average=sum/a;
printf("the number of students:the scores:average=%.2lf",average);
}
return 0;
}
第2关:C循环-求各位数字之积
任务描述
答案代码
#include <stdio.h>
int main()
{
int num, digit, product = 1;
scanf("%d", &num);
while (num != 0) {
digit = num % 10;
product *= digit;
num /= 10;
}
printf("%d\n", product);
return 0;
}
第3关:C循环-水仙花数
任务描述
答案代码
#include<stdio.h>
int main(void)
{ int a,b,c,i;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i%100)/10;
c=((i%100)%10)/1;
if(i==(a*a*a)+(b*b*b)+(c*c*c))
{printf("%4d",i);}
}
return 0;
}
第4关:C循环-寻找完数
任务描述
答案代码
#include <stdio.h>
int main() {
int i, j, n, sum;
for (i = 1; i <= 1000; i++) {
sum = 0;
for (j = 1; j <= i / 2; j++) {
if (i % j == 0) {
n = j;
sum += n;
}
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
第5关:分数求和
任务描述
答案代码
#include<stdio.h>
int main(void)
{
int i,b=1;
float sum;
for(i=1;i<101;i++)
{
sum=b*(1.000/i)+sum;
b=-b;
}
printf("%.3f",sum);
/*********Begin*********/
/*********End**********/
return 0;
}
第6关:小球自由落体运动
任务描述
答案代码
#include<stdio.h>
int main(void)
{
/*********Begin*********/
float m,n,h,i,t,sum;
scanf("%f %f",&m,&n);
sum=m;
for(i=1;i<n;i++)
{
t=m/2;
h=t/2;
sum+=2*t;
m=t;
}
printf("%.2f %.2f",h,sum);
/*********End**********/
return 0;
}
第7关:最大公约数和最小公倍数
任务描述
答案代码
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
printf("最大公约数是:%d\n", gcd(m, n));
printf("最小公倍数是:%d", lcm(m, n));
return 0;
}
第8关:字符串中各类字符数的统计
任务描述
答案代码
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
int letter = 0, digit = 0, space = 0, other = 0;
c = getchar();
while (c != '\n') {
if (isalpha(c)) {
letter++;
} else if (isdigit(c)) {
digit++;
} else if (isspace(c)) {
space++;
} else {
other++;
}
c = getchar();
}
printf("%d %d %d %d",letter,digit,space,other);
return 0;
}