我的第三篇博客
作业要求 Click Here
一、我的作业
3.1 题目7-2 求平方根序列前n项和
【实验代码】
#include<stdio.h> #include<math.h> int main () { system(title 7-2 SQRT); int N=0; int t=1; double Q,S; scanf("%d",&N); do{ Q=sqrt(t); t=t+1; S=S+Q; }while(t<=N); printf("sum = %.2lf",S); return 0; }
【解题思路】
1.定义整型变量N,用来表示项数,定义整形变量t用来表示计算的次数;
2.定义浮点型变量Q用来计算平方根,定义浮点型变量S用来表示所有Q值加起来的和,即前N项和;
3.使用do while循环计算Q,并且将Q进行累加,当计算的次数t达到项数N的时候,跳出循环;
4.按照题目要求的格式输出S的值。
【流程图】
【运行结果】
3.2 题目7-3 猴子吃桃
【实验代码】
#include<stdio.h> int main() { system("title Monkeys"); int N; int peach; int a; scanf("%d",&N); peach=1; if(N>1&&N<=10){ for(a=1;a<N;a++){ peach=peach+1; peach=peach*2; } printf("%d",peach); } else{ printf("ERROR!"); } return 0; }
【解题思路】
1.定义变量:用N表示天数,peach作为桃子总数,a作为for循环中代表循环次数的数值;
2.判断输入的N值是否在题目给定的区间[1,10]内,若在给定区间内,进入循环,若不在题目给定的区间内,令程序报错;
3.使用for循环,分别计算第N天到第1天剩余的桃子数量,
4.当循环体计算到第1天剩余的桃子数时,跳出循环;
5.按照题目要求输出结果。
【流程图】
【错误改正】
错误代码:
1 for(a=1;a<N;a++){ 2 peach=peach*2; 3 peach=peach+1; 4 5 } 6 printf("%d",peach);
错误原因:逆向计算桃子数时没有认真思考,仅仅依据题目叙述的顺序去排列运算的顺序,导致计算结果出现错误。
【运行结果】
3.3 题目7-4 查询水果价格
【实验代码】
1 #include<stdio.h> 2 int main() 3 { 4 system("title 7-4 Fruits"); 5 int choice,i; 6 double price; 7 8 for(i=1;i<=5;i++){ 9 printf("[1] apple "); 10 printf("[2] pear "); 11 printf("[3] orange "); 12 printf("[4] grape "); 13 printf("[0] exit "); 14 15 scanf("%d",&choice); 16 17 if(choice==0) 18 break; 19 20 switch(choice){ 21 case 1:price=3.00;break; 22 case 2:price=2.50;break; 23 case 3:price=4.10;break; 24 case 4:price=10.20;break;
25 } 26 printf("price = %.2f ",price); 27 } 28 return 0; 29 }
【解题思路】
1.定义变量:使用choice表示输入的选项,使用price表示查询的结果,使用i表示循环的次数;
2.进入第一次查询,输入需要查询的选项;
3.根据输入的选项判断输出的结果,若输入值为零,跳出循环;
4.输出第一次查询的结果,进入第二次查询。当查询次数达到5次时,自动结束。
【运行结果】
【错误改正】
错误代码:
switch(choice){ case 1:price=3.00; case 2:price=2.50; case 3:price=4.10; case 4:price=10.20;
错误原因:没有使用break,导致程序自动向下运行,最终price的值为10.20.
二、我的学习进度
过去的两周学习中,主要学到了循环的知识。学过的循环共有for、while、do while三种类型。
循环结构是C语言编程的重点,而循环结构的难点在于循环的嵌套。使用循环嵌套时候,应特别注意内部循环的循环条件以及内部循环体的排列顺序,以免造成死循环或者计算错误。
这是我的学习进度统计图(蓝色代表代码行数,红色代表博客总字数/10)
三.作业互评
1.作业1
2.作业2
3.作业3