实验二简单循环结构的实现
实验目的
(1)计数型循环结构的构建
(2)for语句
实验内容
任务一:改错输出华氏摄氏温度转换表
1.打开程序文件error1-10.cpp
#include <stdio.h>
int main(void)
{ int fahr , lower, upper; /* fahr表示华氏度 */
double celsius; /* celsius表示摄氏度 */
lower = 30; /* 变量 lower 给定转换范围的下限 */
upper = 35; /* 变量 upper 给定转换范围的上限 */
printf("fahr celsius\n"); /* 显示表头 */
for (fahr = lower , fahr <= upper, fahr ++) ;
celsius = 5 /9 * (fahr - 32.0); /* 温度转换 */
printf("%3.0f %6.1f\n", fahr, celsius);
return 0;
}
2. 程序的功能是输出30-35度的华氏温度与摄氏温度的对应表。
请根据VC6的compile和link错误信息改正错误,使程序可以运行。
#include <stdio.h>
void main()
{ int fahr , lower, upper; /* fahr表示华氏度 */
double celsius; /* celsius表示摄氏度 */
lower = 30; /* 变量 lower 给定转换范围的下限 */
upper = 35; /* 变量 upper 给定转换范围的上限 */
printf("fahr celsius\n"); /* 显示表头 */
for (fahr = lower;fahr <= upper;fahr ++)
{ celsius = 5 * (fahr - 32.0)/9; /* 温度转换 */
printf("%3.0d%6.1f\n", fahr, celsius); }
}
3. 将程序改为通用程序,即从键盘输入lower和upper的值。
源程序
ex01_06.cpp清单如下:
#include <stdio.h>
void main()
{ int fahr , lower, upper;
double celsius;
printf("输入华氏温度起始值,结束值:\n");
scanf("%d%d",&lower,&upper);
printf("fahr celsius\n");
for (fahr = lower;fahr <= upper;fahr ++)
{ celsius = 5 * (fahr - 32.0)/9;
printf("%3.0d%6.1f\n", fahr, celsius); }
}
4. 测试运行结果
预计结果截取黑屏运行结果
fahr celsius
30 -1.1
31 -0.6
32 0.0
33 0.6
34 1.1
35 1.7
任务二:改错求1+2+…+100
1.打开程序文件error1-11.cpp。
#include <stdio.h>
void main()
{
int i,sum;
sum=0;
for ( i = 1;i <= 100;i++)
sum = sum + i;
printf("sum = %d\n", sum);
}
2. 程序的功能是计算1+2+…+100,并输出结果。
请根据VC6的
compile和link错误信息改正错误,使程序可以正确运行。
#include <stdio.h>
void main()
{
int i, sum;
sum=0;
for (i=1;i <= 100;i++)
sum = sum + i;
printf("sum = %d\n", sum);
}
3. 测试运行结果
预计结果截取黑屏运行结果
sum=5050
4. 修改程序,使功能变更为计算1-1/3+1/5-1/7+1/9-…的前n项之和,并输出结果。
源程序ex01_08.cpp清单如下:
#include <stdio.h>
void main()
{
int i,n,f,m;
double sum;
printf("print one shu:\n");
scanf("%d",&n);
sum=0;
f=-1;
m=-1;
for (i=1;i <= n;i++)
{ m=m*f;
sum = sum + 1.0/(2.0*i-1.0)*m;
}
printf("sum = %.2f\n", sum);
}
任务三:编程求累加和
n
设计程序文件ex01_10.cpp,输入a和n,求 a+aa+aaa+aaaa+….+a……aa 源程序清单:
#include <stdio.h>
void main()
{
int n,i,a,m,g,h;
double sum;
printf("输入2个数a,n\n");
scanf("%d%d",&a,&n);
sum=a;
m=1;
h=0;
for (i=2;i<=n;i++)
{ m=10*m;
g=m+1+h;
sum=sum+a*g;
h=h+m;
}
printf("sum=%f\n",sum);
}
测试用例设计:
实验体会
实验过程评价:碰到什么问题?如何解决?。