zoukankan      html  css  js  c++  java
  • 罗杨美慧 20190905-3 命令行和控制台编程

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/5523

    1.熟悉命令行和控制台

    假设在当前目录下存在应用程序 a.exe 和 文件文件 b.txt,请以数据流图并辅助以文字说明下述控制台命令的作用是什么。

    a.exe < b.txt > c.txt

    数据流图:

    b文本的内容是a程序输入的数据,a程序运行后得到结果再输出到c文本中。

    请用C言开发应用程序d.exe,从控制台指令读入命令行参数,并在控制台分别打印出a、b、c的值。运行效果形如下面的示例。

    d.exe a=1 b=2 c=3

    1

    2

    3

    d.exe a=11 b=22 c=33

    11

    22

    33

     代码如下:

    #include<stdio.h>
    int main(){
        int a,b,c;
        while(scanf("a=%d b=%d c=%d",&a,&b,&c)){
            printf("%d
    ",a);
            printf("%d
    ",b);
            printf("%d
    ",c);
        }
        return 0;
    }

    执行效果截图:

     2.熟悉 测试用例

    (1)请在网站 [https://pintia.cn/]注册账号。     

    (2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。截图如下,要求包括1.红色对号、2.标号、3.用户名。

     

    (3)代码解读。发表博客,介绍上述3个题目代码中重点/难点,展示重要代码片断,给出执行效果截图,展示你感觉得意、突破、困难的地方。

    1001 害死人不偿命的(3n+1)猜想

    重点:首先判断n是奇数还是偶数,每次循环累加一次,循环终止条件是n=1.

    重要代码片段:

    int main(){
        int n;
        scanf("%d",&n);
        int s=0;
        while(n!=1){
            if(n%2==0){
                n=n/2;
                s++;
            }
            else{
                n=(3*n+1)/2;
                s++;
            }
        }
        printf("%d",s);
        return 0;
    } 

    执行效果截图:

    1006 换个格式输出整数 

    重点:输入一个三位数,计算出个位十位和百位数字,循环输出个数.

    重要代码片段:

    int main(){
        int n,B,S,G;
        scanf("%d",&n);
        B=n/100;
        S=n%100/10;
        G=n%10;
        for(int i=0;i<B;i++)  
            printf("B");
        for(int i=0;i<S;i++)  
            printf("S");
        for(int i=1;i<=G;i++) 
            printf("%d",i);
        return 0;
    }

    执行效果截图:

    1011 A+B 和 C 

    重点:输入测试次数,判断a+b是否大于c,循环多次输出结果.

    重要代码片段:

    int main()
    {
        int num,i;
        scanf("%d",&num);
        long a,b,c;
        for(i=0;i<num;i++){
            scanf("%ld%ld%ld",&a,&b,&c);
            if(a+b>c)
                printf("Case #%d: true
    ",i+1);
            else
                printf("Case #%d: false
    ",i+1);
        }
        return 0;
    }

    执行效果截图:

     

    (4) PSP

     

    总结:本次作业选择的三道编程题难易程度其实不大,但对我来说还是比较困难,花费较长的时间来完成。很多编程题都是能够看懂代码但上手操作后就会出错,还是实际操作的次数太少,相信通过这门课以后也会有所改善,也是对自己的一种锻炼吧。

  • 相关阅读:
    HDU4004The Frog's Games(二分求恰当的步长)
    HDU2899Strange fuction (二分)
    HDU4190Distributing Ballot Boxes
    HDU2059龟兔赛跑(加油站)
    HDU2594 Simpsons’ Hidden Talents (kmp找寻两串s1,s2中相同的部分)
    HDU1711Number Sequence (kmp找母串ns[]中子串ms[]第一次出现时,首位的位置)
    HDU1874畅通工程续(最短路模版)
    HDU3790最短路径问题
    1655 文本计算器
    具有相同元素的排列组合模板
  • 原文地址:https://www.cnblogs.com/lymh/p/11491355.html
Copyright © 2011-2022 走看看