其他分享
首页 > 其他分享> > HDU2019之深刻理解

HDU2019之深刻理解

作者:互联网

文章目录


前言

内容:
对HDU2019的更深刻理解


1.直接上答案!!!!

/* HDU2019 数列有序! */
 
#include <stdio.h>
 
int main(void)
{
    int n, m, val, i;
 
    while(scanf("%d%d", &n, &m) != EOF) {
        if(n == 0 && m == 0)
            break;
 
        if(n == 0) {
            // n=0时,只需要输出m
            printf("%d\n", m);
        } else {
            // 读入n个数据,同时输出数据,并且在适当位置输出m
            int flag = 1;
            for(i=0; i<n; i++) {
                scanf("%d", &val);
 
                if(flag && val >= m) {
                    if(i == 0)
                        printf("%d", m);
                    else
                        printf(" %d", m);
                    flag = 0;
                }
 
                if(i>0 || !flag)
                    printf(" ");
                printf("%d", val);
            }
            printf("\n");
        }
    }
 
    return 0;
}

2.上重要部分!!!

代码如下(示例):

            // 读入n个数据,同时输出数据,并且在适当位置输出m
            int flag = 1;  //用来去打出要求的格式:1 2 3 4
            for(i=0; i<n; i++) {
                scanf("%d", &val);   //输入每个数值
 
                if(flag && val >= m) {      //解决插入的位置
                    if(i == 0)	  //有可能这个数在第一个
                        printf("%d", m);
                    else
                        printf(" %d", m);
                    flag = 0;	//为了下面的if进行服务
                }
 
                if(i>0 || !flag)	//这一步就很牛,咱们分两种情况
                    printf(" ");	//1.假设m的位置为第一个,那么在前面就可以直接输出,
                 				    //此时flag=0,则这里就会输出空格,而下面一个printf会输出下一个数
                 				    //2.假设m不在第一个位置,则上一个if的第一位i=0,flag=1;不会输出空格
                printf("%d", val);
            }
            printf("\n");
        }

该处使用的url网络请求的数据。


总结

提示:这题最灵活的为
if(i>0 || !flag)
这一行 轻松解决格式问题
爆赞!!!!!!

标签:输出,val,int,scanf,flag,HDU2019,printf,深刻理解
来源: https://blog.csdn.net/qq_51829607/article/details/114674751