• 第十二周编程总结--助教


    题目1 跟奥巴马一起画方块
    (1)实验代码
    #include<stdio.h>
    int main ()
    {
     int n, i, j;
     char a;
     
     scanf("%d %c", &n, &a);
      
     for(i = 1;i <= n*0.5+0.5;i++)
     {
      for(j = 1;j <= n;j++)
      printf("%c",a);
      printf(" ");
     }
     return 0;
    }
    (2)设计思路
    第一步:定义整型变量和字符变量
    第二步:输入并用for循环
    第三步:输出图形
    (3)本题调试过程碰到问题及解决办法
    for循环的条件一开始错了,看了下题目改正了。
    (4)运行结果截图

    题目2 编程打印空心字符菱形
    (1)实验代码
    #include<stdio.h>
    int main ()
    {
     int n, i, j, k;
     char a;
     scanf("%c %d", &a, &n);
     n = (n + 1) / 2;
     
     for(i = 0;i < n;i++)//行数的输出
     {
      for(j = 1;j < n-i;j++)
      printf(" ");//每个字符前输出的空格
      
      printf("%c",a+i);
      
      for (j=0;j<2*i-1;j++)
      printf (" ");//菱形里面的空格
      if(i)//if(a)代表i不等于0时满足if条件,等价于if(i!=0)
      printf ("%c",a+i);
      
      printf (" ");
     }
     for(i = n-1; i >0 ; i--)
     {
      for (j = 0; j < n-i; j++)
      printf(" ");
      
      printf("%c",a+i-1);
      for (j=0;j<2*i-3;j++)
      printf(" ");
      
      if (i-1!=0)
      printf ("%c",a+i-1);
      
      printf (" ");
     }
     return 0;
     }
    (2)设计思路
    第一步:将菱形拆成上下两部分
    第二步:上半部分用三个for循环,每次字符加一
    第三步:下半部分一样,只是每次字符减一
    第四步:输出图形
    (3)本题调试过程碰到问题及解决办法
    格式错误了一次,空格问题
    (4)运行结果截图

    题目3 输出三角形字符阵列
    (1)实验代码
    #include <stdio.h>
    int main()
    {
        int n, i, j,count = 0;
        scanf("%d", &n);
       
        for (i = n; i > 0; i--) //输出有多少行
        {
            for (j = 0; j < i; j++) //每行有多少个字符
           {
                printf("%c ", 'A' + count);
                count++;//每循环一次加一,用于字母的增加
            }
            printf(" ");
        }
        return 0;
    }
    (2)设计思路
    第一步:定义输入的变量
    第二步:两个for循环
    第三步:字符增加
    第四步:输出图形
    (3)本题调试过程碰到问题及解决办法
    没什么问题
    (4)运行结果截图

    题目4 阅览室
    (1)实验代码
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    int main ()
    {
     int n, x, h, m;
     int sum=0,s=0;
     int  b[1001];
     char a;
     
     scanf("%d", &n);
     memset(b,-1,sizeof(b));
     
     while(n--)
     {
      while(1)
      {
       scanf("%d %c %d:%d", &x, &a, &h, &m);
       
       if(x==0)
       {
        memset(b,-1,sizeof(b));
        
        if(s!=0)
        printf("%d %.0f ",s,(double)sum/s);
        
        else
        printf("0 0 ");
        
        sum = s = 0;//此处将sum和s清0
        break;
       }
       else
       {
        if(a=='S')
        b[x] = h * 60 + m;
        
        else if(a=='E'&&b[x]!=-1)
        {
         sum += h * 60 +m -b[x];
         s++;
         b[x]=-1;
        }
        
       }
      }
     }
     return 0;
    }
    (2)设计思路
    第一步:定义函数
    第二步:定义整型变量和字符变量,加数组,用memset函数将数组b[x]全变为-1
    第三步:输入要几天的借书记录,用与for循环的次数
    第四步:输入,用if判断是否为0,为0输出0 0,不为0继续判断为S还是E
    第五步:将输入为S的时间变为分钟,当下一次的b[x]相等且b[x]不为-1时算出时间
    第六步:输出结果
    (3)本题调试过程碰到问题及解决办法
    sum和s没有清0,结果错误
    (4)运行结果截图
  • 相关阅读:
    (五)Redis在项目中应用
    股票收益最大问题
    (四)redigo
    (三)go-sql-driver
    为什么TCP要3次握手?4次挥手?
    分支预测
    事务隔离级别说明
    剑指offer解题思路锦集11-20题
    C++中的二义性问题
    memcached Vs redis
  • 原文地址:https://www.cnblogs.com/zw431387/p/10037633.html
Copyright © 2020-2023  润新知