題目資訊:
題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間[1,1000]。稍微有點麻煩的是,輸入並不保證是兩個正整數。思路:a,b分開輸入,在a不是空格的前提下,處理第乙個空格前後的字串,經過判斷後轉換為數字,最後處理a b為符合整數後還有字串輸入的情況。輸入格式:
輸入在一行給出a和b,其間以空格分開。問題是a和b不一定是滿足要求的正整數,有時候可能是超出範圍的數字、負數、帶小數點的實數、甚至是一堆亂碼。
注意:我們把輸入**現的第1個空格認為是a和b的分隔。題目保證至少存在乙個空格,並且b不是乙個空字串。
輸出格式:
如果輸入的確是兩個正整數,則按格式a + b = 和輸出。如果某個輸入不合要求,則在相應位置輸出?,顯然此時和也是?。
輸入樣例1: 123 456
輸出樣例1: 123 + 456 = 579
輸入樣例2: 22. 18
輸出樣例2: ? + 18 = ?
輸入樣例3: -100 blabla bla…33
輸出樣例3: ? + ? = ?
坑: 空格可以出現多次 要注意處理 a為空格以及b為空格以及b中多次出現空格的情況
解決方法:我認為解決關鍵點在於輸入方式,我採取了getline(cin,str,』 ')的輸入方式這樣可以直接處理a為空格的情況。對應測試點6
ac**
#include
#include
#include
using
namespace std;
//利用int num = atio(str.c_str())函式優化 字串轉數字
bool
isznumber
(string a)
//判斷是否為正整數
}//大體確定但要保證不越界 直接轉數字吧
int anumber =
atoi
(a.c_str()
);if(anumber>=
1&&anumber<=
1000
)else
}int
main()
return0;
}
測試點
我的問題在3 6都屬於有思維漏洞,但3好除錯, 處理6花了很長時間主要是我剛開始沒考慮到這種情況,思路大體成型,不方便改動,最後從輸入方式入手解決了a為空格的狀況。
el input 輸入正整數
1.scope.row.num isnumber e 2.methods內新增方法 isnumber val 3.這裡有乙個坑,就是如果對於列表迴圈出來的 input失效 原因在於在vue例項建立時,obj.b並未宣告,因此就沒有被vue轉換為響應式的屬性,自然就不會觸發檢視的更新 這是錯誤寫法,v...
C 的整數型別及其輸入輸出
c 的整數資料型別 1,char 1位元組 2,short int 2位元組 3,int 4位元組 4,unsigned int 4位元組 5,long int 8位元組 char與其它整型資料的區別 char可以用於字元的輸出。如果以char型別定義乙個變數ch,比如ch 114。那麼輸出的ch則...
C C 關於64位整數輸入輸出
兩部分分辨 第一部分 第二部分 第一部分 型別long long int64 intmax t 格式 lld i64d i64d 在dev c 中,三種型別均需用 i64d格式輸出 c語言中intmax t需要用到頭檔案stdint.h c 採用cin輸入時,兩種型別均可。eg1eg2 eg3 in...