哈工大C语言DA实验报告
哈尔滨工业大学(威海)软件学院
C程序设计 实验报告
编号:
姓名院系软件学院学号任课教师指导教师于水实验地点实验时间实验名称1、国王应该给大臣多少麦子;2用英文字母组成一个菱形;3、输出一段DNA序列对应的mRNA及转录出的蛋白质。同 组 人无预习报告(对实验主要内容的认识)得分如果循环次数已知,用for;如果循环次数未知,用while如果循环体至少要执行一次,用do-whil。
break与continue的作用是跳转;continue负责结束本次循环,回到循环条件处;break负责退出本循环(本语句块)。
一个工程中绝对不允许出现死循环。实验内容(问题,思路,程序,结果)得分主要说明面对的问题是什么现象(输入,输出或者编译器提示等),通过这样的现象,能够得到什么已知条件。
由此,通过自己的设计方案,设计并实现满足实验需求的程序或者文档。在实验报告中,对于问题的分析和设计是重点内容。
实验1(国王应该给大臣多少麦子)
本实验要求用两种方法计算国王应该给大臣多少麦子:直接计算累加的通项和利用前项计算后项。
直接计算累加的通项:利用数学公式计算出累加通项为Sn=a1*(1-qn)/(1-q)程序如下:
do{
sum=sum+a;
a = a*2;
i++;
}while(i<=15);
printf("sum=%d\n",sum);
break;
利用前项计算后项:
for(i=0;i<16;i++)
{
a=a*2;
}
sum = a - 1;
printf("sum=%d\n",sum);
break;
把两个程序合并在一起的完整的程序:
#include
#include
int main()
{
int i,a,sum,way;
sum = 0;
i = 0;
a = 1;
printf("你想用第几种方法(请输入1或2):\n");
scanf("%d",&way);
switch(way)
{
case 1:
do{
sum=sum+a;
a = a*2;
i++;
}while(i<=15);
printf("sum=%d\n",sum);
break;
case 2:
for(i=0;i<16;i++)
{
a=a*2;
}
sum = a - 1;
printf("sum=%d\n",sum);
break;
default:
printf("请重新输入\n");
}
return 0;
}
运行结果如下:
实验2(用英文字母组成一个菱形)
1、思路:(1)首先能够输出英文字母,用putchar语句,可以用Asc码来实现: for(k=0;k<=i;k++)
putchar('A'+k);
(2)用四块三角形组成一个菱形:注意怎样输出空格(用一段循环语句来实现)。 利用循环次数的不同来实现上下两块三角形的出现。
(3)还有提醒用户输入的数字应该在1—26。
2、具体程序如下:
#include
int main()
{
int n=0,i,j,k;
printf("##########################################\n");
printf("**********欢迎来到美丽的图形世界*******