頁:
[1]
(已解決)有關於數字比大小
本帖最後由 abcd345107 於 2016-11-9 12:37 AM 編輯我是剛踏入程式世界的新人,今天上課有道題目是 給出 任何整數 (正負都可)
不超過20個 (意思是少於20也可,中斷方式好像可用ctrl+z),最後輸出 最大和最小值
我的構想是利用陣列,然後利用
sort(buf, buf +x);<<上課教的,讓陣列內由小到大, 然後我再輸出第一 個 和最一個就可以獲得最小和最大
但我的問題有:
1.如何輸進去(我試過 cin>>s , buf=s的手法 ,但好像不對)
2.我的構想 可以成功執行,哪裡用盲點或觀念不正確?
ps 我是剛入門新手,請各位高手大大 用比較複雜好懂的方式講解 感恩><
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 因為大大是標榜上課題目...這讓回答者添加不少難度~因為畢竟是學習中~實在是不知道大大學過那些~沒學過那些...寫出你沒學過的內建函式...好像也不能幫助大大
以下是給大大方向~希望能幫上大大
您期望的陣列方式~就某種程度上是可行的...如下例子int num;
for( int i = 0 ; i < 20 ; i++ )
{
cin>>num;
}只是這寫法有個缺點~就是不能指定中斷方式
畢竟只要輸入非數字的東西進去...cin判定此值不該丟到int內就會跳開了
就連輸入負號...後面沒加數字也不行....因為那樣不能構成數字咩
而且最重要的是~感覺cin就壞掉了~在程式結束之前修不好了(至少我不會修)...因此假如只是一次性的還可以這麼搞~但是假如還要做迴圈重新輸入數字....就不能這麼玩...自己跑過一次就會知道我再說甚麼
先假設這樣大大可以接受...假如不能接受~就乖乖把字串抓出來轉成數字在存起來囉(強烈建議要學先輸入字串再把值轉成數字...畢竟這種怪招以後肯定會出包)
因此先給錯誤的int....基本流程#include <iostream>
using namespace std;
#include<algorithm>
int num;
int array_sum = 0;
void main()
{
for( int i = 0 ; i < 20 ; i++ )
{
if ( cin>>num )
{
array_sum++; //紀錄使用者總共存了多少字
}
else
{
break; //有給非數字的字元....離開for迴圈
}
}
sort( num , num + array_sum );
cout<<"\n結果出爐...我是分隔線\n";
for( int i = 0 ; i < array_sum ; i++ )
{
cout<<num<<endl;
}
}最後怎麼用字串轉數字呢?相信課程有說過吧...給個簡單的範例char s ;
cin>>s;
num = atoi( s );相信把我說的東西吸收後...在自己添加中斷條件 ...如果可以的話~順便添加檢查是否是純數字的字串....就是您要的東西了~別問我為何不給完全版~畢竟了解學習很重要呀{:31:}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> baepi 發表於 2016-11-8 11:32 PM static/image/common/back.gif
因為大大是標榜上課題目...這讓回答者添加不少難度~因為畢竟是學習中~實在是不知道大大學過那些~沒學過那些 ...
大.....大神rrr 感謝回復 目前我真的是"剛" 學呢 ~ 函式目前都還沒動用到,只教一些最最基本的 本帖最後由 abcd345107 於 2016-11-9 12:45 AM 編輯
https://a476.static-file.com:8000/data/avatar/000/01/20/56_avatar_small.jpg
baepi 那假如真有問題~在說明哪裡不懂吧~能簡述學過那些涵式會更好...像是之前提到的sort跟cin...就很方便我說明^^ 發表於 9 分鐘前
剛剛經由大大講解略有領悟(在下資質愚鈍,但不知為何就是喜歡程式常常又愛又恨XD)
以後應該會有許多問題 期望大大再次提點在下
目前只看到函式 有 #include<algorithm>#include<iostream> #include<string> #include<iomanip>
目前進度為 int (整數) flaot(浮點數) double(好像跟浮點數差不多?) string(字串) char(字元)
bool(布林值)
陣列 迴圈
一點點函式講解 如實作 呼叫 之類 霧煞煞 =w 以後要更加努力學習呢~...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> #include<algorithm>#include<iostream> #include<string> #include<iomanip>
請問這些 標頭檔 是屬於C++ 的嗎 ? <br><br><br><br><br><div></div> 其實著最大和最小算是學習寫程式的必經之路, 是有一個標準答案的
可是這個答案不是排序後拿第一個/最後一個, 因為排序相對來說比較吃資源
不過新手可以先不用理這個, 有甚麼想法就嘗試去做
我只是不能接受來我們公司面試的人(有新有舊)還想用排序的方法做這個問題 theloserbm 發表於 2016-11-9 01:32 PM static/image/common/back.gif
其實著最大和最小算是學習寫程式的必經之路, 是有一個標準答案的
可是這個答案不是排序後拿第一個/最後一 ...
也要看是哪種排序和資料量
如果是 bukkit sort 資料量又不是非常大的話,時間複雜度是比一個一個比較的 O(2n) 還要快一倍的…...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]