C/C++ 讀入一個整型陣列,陣列大小未知
連結:https://www.nowcoder.com/questionTerminal/eac8c671a0c345b38aa0c07aba40097b
來源:牛客網
輸入n個整數,輸出出現次數大於等於陣列長度一半的數。
輸入描述:
每個測試輸入包含 n個空格分割的n個整數,n不超過100,其中有一個整數出現次數大於等於n/2。
輸出描述:
輸出出現次數大於等於n/2的數。
示例1
輸入
3 9 3 2 5 6 7 3 2 3 3 3
輸出
3
#include<stdio.h>
#include <map>
using namespace std;
int main(){
int tem,cou=0,a[100];
map<int,int> m;
char ch;
while(~scanf("%d%c",&tem,&ch)){ //也可寫成scanf("%d%c",&tem,&ch),結果一樣
a[cou++]=tem;
m[tem]++;
if(ch=='\n'){
break;
}
}
int l=cou/2;
map<int,int>::iterator it;
for (it=m.begin();it!=m.end();it++)
{
if (it->second >= l)
{
printf("%d\n",it->first);
break;
}
}
system("pause");
return 0;
}
這裡~scanf的含義如下:
scanf
函式返回成功讀入的資料項數,讀入資料時遇到了“檔案結束”則返回EOF。
scanf
(
"%d %d"
,&a,&b);
函式返回值為
int
型。如果a和b都被成功讀入,那麼
scanf
的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。其中EOF的值為-1
也就是說
scanf
返回值的取值範圍是大於等於-1的整數,只有返回值為EOF時,其取反的的值,即
while
迴圈的判斷條件才為0,才能結束迴圈。
(-1的補碼錶示全是1,按位取反後全是0,即為假)其它輸入情況下(無論是否輸入成功),
while
迴圈的判斷條件為非0,即為真)
相關文章
- C++ 獲取陣列大小、多維陣列操作詳解C++陣列
- [C++]陣列C++陣列
- C++通過輸入數來確定一個陣列的動態大小C++陣列
- C++陣列 字串C++陣列字串
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- C++陣列長度C++陣列
- c++陣列排序插入C++陣列排序
- c++中的陣列C++陣列
- 陣列1——求一個陣列的最大子陣列陣列
- C++ 指標陣列與陣列指標的區別C++指標陣列
- 編寫一個函式,實現兩個整型陣列的合併(將兩個整型陣列a和b合併成一個從小到大有序排列的整形陣列c,並在主函式中測試)。函式陣列
- C++陣列的儲存|C++陣列所佔記憶體空間C++陣列記憶體
- C和C++陣列的用法C++陣列
- C++ ——vector陣列筆記C++陣列筆記
- [ASM C/C++] C語言陣列ASMC++C語言陣列
- 將一個陣列賦值給另外一個陣列陣列賦值
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- C和C++中所謂的陣列C++陣列
- c++筆記_多維陣列C++筆記陣列
- C++陣列的連續性C++陣列
- C++ 陣列的 auto 和 decltypeC++陣列
- 深入探索 C/C++ 陣列與指標的奧祕之一:陣列與指標概念剖析C++陣列指標
- C++語言中陣列指標和指標陣列徹底分析(系列一) (轉)C++陣列指標
- C++查詢一個數是否在陣列中find用法C++陣列
- js將一個陣列追加到原陣列中JS陣列
- 如何將一個陣列中的元素插入另一個陣列陣列
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- 兩個有序陣列如何合併成一個有序陣列陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- Python多個陣列合並(拼接)為一個陣列Python陣列
- C++獲取陣列的長度C++陣列
- C++陣列預設初值問題C++陣列
- C++ 使用 new 建立二維陣列C++陣列
- C++ 煉氣期之陣列探幽C++陣列
- C++ 陣列宣告和初始化C++陣列
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- 徹底搞清C/C++中一維陣列,二維陣列,指標,陣列指標和指標陣列以及指向指標的指標,行地址和列地址之間的關係C++陣列指標
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列