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