仅供课外学习使用,任何个人与机构不得利用此文章进行任何形式的作弊。
实验目的:
- 熟悉C程序的开发环境;
- 能够编辑、编译、运行简单的C程序,掌握C程序的基本结构;
- 具备根据实际需要,设计选择结构中的关系、逻辑表达式的能力;
- 能够熟练使用各种循环语句;
- 能够使用一些常见算法进行循环控制。
实验内容:
- 编写程序,实现如下功能:求
之值。
思考:注意分数之前的符号,什么时候为正什么时候为负?
- 编写程序,实现如下功能:求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
思考:如何求出一个三位数的百位、十位和个位?
实验要求:
- 须独立完成算法设计及代码编写,严禁抄袭。
参考书目:
Stephen Prata著, 姜佑 译. C Primer Plus (第6版)中文版. 北京:人民邮电出版社,2016.
(作者注:由于是第一次实验,老师并未给出输入与输出样例)
代码实现:
实例一:每天都想睡十小时:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
int main()
{
double i, flag = 1, sum = 0.0;//flag标记符号,用double防炸
for(i = 1; i <= 100; i++)
{
sum += (1 / i) * flag;//算ai并加入sum中
flag *= -1;//Key Step:改变下一个数的符号
}
printf("The answer is %lf",sum);//输出
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
//还有一种办法是int i从200~300循环,这里我走条不一样的路
int main()
{
int i, j, k;
printf("Here are the answers:\n");
for(i = 2; i <= 2; i++)//百位
for(j = 0; j < 10; j++)//十位
for(k = 0; k < 10; k++)//个位
{
if(i + j + k == 12 && i * j * k == 42)
printf("%d%d%d\n", i, j, k);//组合成答案,进行输出
}
return 0;
}
实例二:>C=C<:
#include <stdio.h>
int main()
{
int a,i;
int ret = 1; //定义符号变量
double sum = 0; //定义求和变量
for(i=1;i<101;i++)
{
sum += ret*1.0/i; //求和
ret = -ret; //符号取反
}
printf("%f\n",sum);
return 0;
}
#include <stdio.h>
int main()
{
int a,b,c,i,t;
for(i=200;i<301;i++)
{
t = i; //记录i的初始值
a = i%10; //计算个位
i/=10;
b = i%10; //计算十位
i/=10;
c = i%10; //计算百位
int m = a+b+c;
int n = a*b*c;
if(m==12&&n==42)
{
printf("%d ",t);
} //判断是否输出
i = t; //还原初始值
}
return 0;
}
实例三:大喵:
#include<stdio.h>
int main()
{
double ans = 0; //华丽的定义了一个长浮点
for(double i = 2; i <= 100; i++) //华丽的控制范围
{
ans += (int(i) & 1) ? 1.0 / i : -1.0 / i; //华丽的二进制末位为1则加 否则减 //(int)强制类型转换
}
printf("%lf", ans); //华丽的输出
return 0; //华丽的结束程序
}
#include<stdio.h>
int main()
{
for(int i = 200; i <= 300; i++)
{
int a, b, c;
int uu = i;
a = i % 10;
uu /= 10; //取个位
b = uu % 10;
uu /= 10; //取十位
c = uu; //取百位
if(a + b + c == 12 && a * b * c == 42) //判断输出
printf("%d\n", i);
}
return 0;
}