作者waterdisney (想要征服的世界)
看板C_and_CPP
标题Re: [问题] 一个检查array内容的功能
时间Thu Apr 20 22:52:21 2017
※ 引述《Zoxge (Zoxge)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: Linux
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: GCC
: 问题(Question):
: 有一个一维array,里面随机存了20个1~500之间的数字
: 现在要依序print出1~500之间的数字,但不包含那个一维array里面的内容
: 请问除了下面网址内的方法(检查array中每个index存放的值)之外
: 有什麽更快的方法能够解决这个问题呢?
: 谢谢
: 程式码(Code):(请善用置底文网页, 记得排版)
: https://ideone.com/1KIzIo
bool isNumberInArray[501]={0};
for(int i=0;i<20;i++)
{
isNumberInArray[ ARRAY[i] ]=1;
}
for(i=1;i<=500;i++)
{
if( 0 == isNumberInArray[i] )
printf("%d",i);
}
用一个大小为500的bool array纪录哪些数字不用印出来
然後依序把剩下的数字印出来即可
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.47.7
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1492699944.A.063.html
1F:→ CodingMan: 大小不是501吗? 04/20 23:37
2F:→ Hazukashiine: 别纠结 ww 这里宣告 isNumberInArray[500] 也可以 04/21 01:25
3F:→ Hazukashiine: 但是要改成 isNumberInArray[ ARRAY[i] - 1] = 1; 04/21 01:26
4F:→ hunandy14: 好奇 ={0} 的习惯是基於好辨识吗 一看就知道初始0 04/27 13:10
5F:→ hunandy14: 因为这只会初始化到第一个~还是有什麽其他原因 04/27 13:11
6F:推 LPH66: 不是喔, {} 初始化对後面没写元素的都是预设初始化 04/28 10:07
7F:→ LPH66: 对 primitive type 预设初始化就是 0 04/28 10:08
8F:→ LPH66: 所以理论上可以写 = {}, 但写 = {0} 看的人就很清楚是 0 04/28 10:09
9F:→ LPH66: 另外写 = {} 跟不写也有差, 不写才是真的都没初始化 04/28 10:15
10F:→ hunandy14: 了解~知道会预设初始化,叙述打错了 04/28 13:03
11F:→ hunandy14: 原意是想表示 只会指定第一个~ 感谢说明 04/28 13:05