阶段一上机考试错题分析

R7-6 打印沙漏

题目:

分析:

(1)每行输出的数相当与 an=2n-1;总数相当于一个上三角加一个下三角减去1;上三角=下三角=n+(n-1)*n/2*2;即总数=2n*n-1

2)题目中要求相邻两行符号数差2,中间对齐——>在每一行前面输出空格数为对应三角形所在行数-1。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<stdio.h>
int main()
{
    int i,kong,n=0,N,fuhao;
    char op;
    scanf("%d ",&N);                           
    scanf("%c",&op);                          
    while(N>=2*n*n-1){                    
        n++;}
    if(2*n*n-1>N){                              //让n回到 达到离开循环条件前的值
        n--;}
    for(i=1;i<=n;i++)                           //先输入上三角
    {
        for(kong=1;kong<i;kong++)               //输出所需个数的空格
            printf(" ");
        for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)    //输出所需个数的符号
            printf("%c",op);                   
        printf("\n");                            //行末换行
    }
    for(i=n-1;i>=1;i--)                           //基本与上个循环基本相同,只是修改循环起始计数数和判断条件,且不用输出下三角的尖尖
    {
        for(kong=1;kong<i;kong++)
            printf(" ");
        for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)
            printf("%c",op);
        printf("\n");
    }
    printf("%d",N-2*n*n+1);                      //输出剩余的符号数量
    return 0;
}

  

解题的难点:

(1)找出循环输出的条件——>重点是要找出规律 

(2)让每行靠中对齐——每换一行变换两个数,在上三角中则每换一行就比上一行多出一个空格。

 

7-7 打印沙漏 

 

 

 

分析:

(1)题目要求:测试数据有多组,处理到文件尾。——意味着没有循环的范围,由此引出对于EOF的使用

对于题目并没有给定输入多少次的情况,只说输入到文件结尾的情况

(2)其他部分与上面那题差不多。

 

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h>
int main()
{
    int n,i,kong,fuhao;
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++)                        
    {
        for(kong=1;kong<i;kong++)               
            printf(" ");
        for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)    
            printf("*");                   
        printf("\n");                        
    }
    for(i=n-1;i>=1;i--)                        
    {
        for(kong=1;kong<i;kong++)
            printf(" ");
        for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)
            printf("*");
        printf("\n");
    }
    }
     
    return 0;
}

   

——————————————————————————————————————————————————————————————————————————————————————————

做题就像上楼,不能还没有搭好梯子,就想着一步飞上去,不然容易掉下来。

posted @   吧拉吧拉吧  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示