第三次作业

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

第六次作业 7-1 求1到100的和

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

第一步:声明两个整形变量i,sum。

第二步:将sum变量赋值为0。

第三步:令i=1,判断如果i<=100的话,那么进行sum=sum+i。i=i+1。然后再次判断条件。

第四步:输出sum的值。

流程图

 

调试截图

一开始没有加上sum初始值为0,所以加上的和怎么也不对

知道错误后,加上之后结果便对了。这个错误很容易犯。

程序运行截图


这回运行后结果便正确了。

 

 

 个人总结和遇到的问题

这是一些基础的for循环问题,我最多并且最喜欢用的循环就是for循环,因为他能把事情很简单化,直观辨别出你的循环次数,很适合我们这些初学者。在慕课网上学习了数组,数组远比我想象的难,你有的时候需要去遍历数组,遍历就是将数组中的每一个元素都赋值或者其他。数组可以解决数量庞大的数,但是我依旧不太理解数组的运用。

第9次作业 题目7-2 输出闰年

#include<stdio.h>
int main()
{
    int a=0,i=2000;
    scanf("%d",&a);
    if(a<i){
            printf("Invalid year!");
        }
    else{
        while(i<=a){
            if(a>2100){
                printf("Invalid year!");
                break;
                    }
            else if(a>=2004){
                i++;
                if(i%100!=0){
                    if(i%4==0){
                    printf("%d\n",i);
                              }
                            }
            else if(i%400==0){
                printf("%d\n",i);
                            }
        }
        else{
            printf("None");
            break;
        }
        }}
            return 0;
 } 

 

第一步:定义两个整形变量i,a。并将i赋值为2000,a赋值为0.

第二步:输入一个数,将这个数赋值给a。

第三步:进行判断,如果a小于i的话,那么跳转第六步。否则执行第四步。

第四步:进行判断,判断i是否小于等于a,如果为真,那么进行第五步,否则结束语句。

第五步:进行判断,如果a大于2100,跳转第六步,如果a大于等于2004的话,执行第七步。否则的话,执行第八步。

第六步:输出Invalid year!这句话,结束循环。

第七步:令i=i+1,并且进行判断,如果不是100的倍数并且是4的倍数,那么输出这个年份,如果是400的倍数,也输出这个年份。

第八步:输出None,并且结束循环。

流程图

程序运行截图

 

换了另一个数进行依然可以

程序调试截图


虽然运行正确,但是当我自己修改下程序的话,就会发现400的倍数也是闰年,虽然题目中400的倍数不输出,但是我认为应该加上那行代码。

 

这是加上后的代码

 

加上后代码调试的结果,没有什么错误,但是加上我认为程序会更完美。

 

 

 

 

 个人总结和遇到的问题

整体大多数的代码都可以做出来,但是代码比较复杂,我应该多加联系来简化代码,这样才能使程序清晰并且流畅运行。这周学到的ascll码我认为很有用,ascll码可以输入或者输出一些我们难以想象的字符。

第10次作业 题目 7-1 统计素数并求和

#include<stdio.h>
int main()
{
    int a,b,i,n,count=0,sum=0;
    int flag=1;
    scanf("%d %d",&a,&b);
    for(i=a;i<=b;i++){
        for(n=2;n<i;n++){
            flag=1;
            if(i%n==0){
                flag=0;
                break; 
                }
            }
        if(flag==1&&i!=1){
            count++;
            sum=sum+i;}
        }
    printf("%d %d",count,sum); 
    return 0;
}

 

第一步:定义六个整形变量a,b,i,n,count,sum,flag。并将count,sum赋值为0,flag赋值为1;

第二步:输入两个值,分别赋值给a,b。令i=a

第三步:进行判断,如果i<=b,执行第四步,否则,执行第六步。

第四步:令n=2,进行判断n<i是否成立,如果成立的话将flag赋值为1,如果不是素数,那么就将flag赋值为0然后结束循环;

第五步:判断如果flag等于1,并且i不等于1,那么就是素数,count加1,将这个数加进sum里。然后再次返回第三步。

第六步:输出count,sum的值。

流程图

程序运行截图

 

但是当我输入1和2时,结果本应该是1和2,但是却不对 

随后我便进行了调试

程序调试截图

 

我发现了错误,我的程序把1也当成了素数,我便加了一个条件

 

 

运行结果便正确了

 

个人总结和遇到的问题

这周学习了指针,指针是指向一个地址,指针是数组的特殊形式,也可以在指针里定义一个字符串。代码还是不够简便,需要多加锻炼。

我认为代码是越简单越好,但是也不能过于简单,像是定义变量定义a,b,c之类的,会让看代码的人不了解是什么意思,现在也是我的习惯,我也需要改一下。

总结图表

 

 

点评博客【https://www.cnblogs.com/error203/p/9945496.html

    【https://www.cnblogs.com/moyoujiang/p/9939932.html

    【https://www.cnblogs.com/wangxiangbo/p/9948484.html

posted @ 2018-11-27 19:35  张春宇  阅读(205)  评论(12编辑  收藏  举报