第三次作业

作业要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359

一:作业7.1

1.实验代码

#include<stdio.h>
int main()
{
  int i,sum;
  sum=0;
  for(i=1;i<=100;i++){
  sum=sum+i;}
  printf("sum = %d\n",sum);
  system("pause");
  return 0;
}

2.解题思路:

(1)首先定义两个两个变量i,sum,首先sum设定初始值为零。再利用for循环不停的求值,从1开始累加到一百。

给sum=sum+i即每次累加一个数。最后输出sum。

(2)流程图

3.运行结果截图:

调试截图:

遇到的问题及解决办法:

在for循环中没有写上i++,这个将会导致i无法增加,使这个循环结构无法执行。在后来的检查过程中,发现了这个问题并修改了,答案正确。

个人总结:在这次的学习中,我学会了for循环应该怎么用,其中最重要的是找到循环体。

 

第八次作业:求奇数和

(1):代码:

#include<stdio.h>
int main()
{
  int num,a;
  for(;;){
  scanf("%d",&a);
  if(a<=0){
    break;
  }
  if(a%2!=0){
  num=num+a;
  }
  }
  printf("%d",num);
  return 0;
}

  (2)解题思路:

首先设变量num,a。输入a,,如果a<=0,为负数,即程序停止。如果a除以2不等于零,那么a为奇数,循环累计将a的和求出来,和为num,输出num。

(3):流程图:

运行结果:

 调试截图:

遇到的问题:

for里面应该有两个分号,开始没有打两个分号,一直编译错误,后来查阅了相关资料才发现这种情况下for需要加括号并且里面要有两个分号。

总结:在写一些程序,任何一步都不能错,不能根据自己的思维来,要知道很多语法点,一点错误不能犯,有不懂的及时解决。

三:第十次作业:

(1):代码:

#include<stdio.h>
int main()
{
	int M, N,i,n = 0, j, x = 0;
	scanf("%d %d",&M, &N);
	for(i = M; i <= N; i++)
	{
		for(j = 2; j < pow(i,0.5); j++)
		{
			if(i % j == 0)
			{
				break;
			}
		}
		if(j > pow(i,0.5) && i != 1)
		{
			n++;
			x+=i;
		}
	}
	printf("%d %d",n,x);
	return 0;
}

  (2):步骤:

先定义整型变量M, N,i,n = 0, j, x = 0,输入M,N即在MN的范围内求素数,此时当数字除以任何一个中间段的数的时候,余数为零即停止循环,如果不是即累计值,最后求和。最后输出结果n,x。

程序框图:

(3):运行截图:

 

(4):调试截图:

(5):遇到的问题:

这个题需要两层for循环,刚开始只用了一层,但是编译也是不对的,先是总的for循环规定所求的数的范围,然后里面的for就是判断是否为素数,先是有除了一和本身的数, 运行后排除不是素数的数,剩下的数求和,最后输出所要求的结果。这个题必须要有两个for,否则无法求出素数的和,在查阅了书本后我才知道这个。

 

总结:这周我们学了for循环更,并且循环的越来越复杂,从一开始的一个循环,比较容易理解的地方开始,慢慢的由浅入深,到后来可能不止一个循环体。这个题目首先需要知道有几个变量,哪些该输入哪些该输出,然后理清各变量之间的关系,再用所学的C语言知识写出来,需要细心的写,不然稍不留神就会出现错误。

 

表格:

 

 

折线图:

 

 

 

 

评论链接:https://www.cnblogs.com/104gyy/p/10022689.html

                  https://www.cnblogs.com/cyw1/p/10028608.html

                  https://www.cnblogs.com/ytyt12/p/10023834.html  

 

posted @ 2018-11-29 20:09  一班李安  阅读(256)  评论(6编辑  收藏  举报