我試圖設計一個這樣工作的代碼片段。用戶輸入一個3位數字,假設他們選擇了653,他們還輸入了他們希望交換的整數中的數字。例如:基本值交換功能
Enter a number and values you wish to swap: "653 2 3"
這則返回以下值:
635 is the new number.
我試圖做到這一點的功能我叫digit_swap。我不確定我是如何處理這個問題的,因爲我對編碼非常陌生,甚至對編碼更新。我想我必須爲整數單獨進單位,十位和元件百強要做到這一點我做了以下內容:
third = (number % 10);
second = ((number % 100)/10);
first = ((number % 1000)/100);
唯一的一點是,我會用一堆if語句來確定的交換數字還是會成爲一個循環。我真的不知道如何去做這件事。至於我的代碼,我有以下。
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int digit_swap(int number, int InputOne, int InputTwo) {
int first, second, third;
if (number < 100) {
cout << "Please enter a 3 digit integer\n";
exit(0);
}
else if (number >= 1000) {
cout << "Please enter a 3 digit integer\n";
exit(0);
}
else {
third = (number % 10);
second = ((number % 100)/10);
first = ((number % 1000)/100);
}
}
using namespace std;
int main() {
int option_one, option_two;
int number;
cin >> number;
cin >> option_one >> option_two;
digit_swap(number, option_one, option_two);
cout << "New number = " << number;
}
即使當我測試,看它是否在它沒有返回值if語句的其他部分加入return first
工作。任何幫助表示讚賞,我不是要求你爲我做代碼。
你是什麼意思「它什麼都不返回」?它返回一個'int',所以它總是返回一些東西。你忘記存儲'digit_swap'的結果了嗎?現在,當'digit_swap'返回時'first','second'和'third'的值就會丟失,並且由於沒有'return'語句,'digit_swap'的返回值是未定義的價值,但不能單獨由代碼確定)。 – szym
不要因爲輸入無效而致電'exit'。返回所有路徑上的內容,處理是否在'main'中打印它。 – LogicStuff