7 1 2 輸入輸出 plus 正整數A B

2021-10-08 05:13:27 字數 1383 閱讀 7359

題目資訊:

題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間[1,1000]。稍微有點麻煩的是,輸入並不保證是兩個正整數。

輸入格式:

輸入在一行給出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分開輸入,在a不是空格的前提下,處理第乙個空格前後的字串,經過判斷後轉換為數字,最後處理a b為符合整數後還有字串輸入的情況。

: 空格可以出現多次 要注意處理 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...