• 第三次作业


    作业要求【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
    ",i);
                                  }
                                }
                else if(i%400==0){
                    printf("%d
    ",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

  • 相关阅读:
    数据结构--窗口内最大值最小值的更新结构(单调双向队列)
    数据结构--BFPRT算法(TOP-K算法)
    数据结构--KMP算法(字符串匹配算法)--树的子结构
    数据结构--Manacher算法(最长回文子串)--生成最短回文串
    数据结构--KMP算法(字符串匹配算法)--在末尾添加字符串,是其包含字符串两次,且长度最短
    数据结构--Manacher算法(最长回文子串)
    数据结构--KMP算法(字符串匹配算法)
    剑指offer——和为S的连续正数序列
    剑指offer——删除链表中重复的结点
    XML DOM解析 基础概念
  • 原文地址:https://www.cnblogs.com/zcybky/p/10022913.html
Copyright © 2020-2023  润新知