對于這個作業,我必須撰寫一個程式,從陣列中洗掉奇數并用偶數替換它們。該陣列必須有 10 個元素,并使用以下數字進行初始化:42、9、23、101、99、22、13、5、77、28。
這些是要求:
- 必須使用我的陣列中提供的值。
- 將原始陣列列印到控制臺。
- 識別陣列中的任何奇數值并用偶數值替換它們。
- 將更新后的陣列顯示到控制臺。
這是我想要的輸出:
The original array is: 42 9 23 101 99 22 13 5 77 28
Your even number array is: 42 18 46 202 198 22 26 10 154 28
我是編程新手,所以這個概念對我來說很難掌握,所以如果有人能提供指導,那將意味著整個世界。
這是我到目前為止所擁有的
#include <iostream>
using namespace std;
int main()
{
int const size = 10;
int values[size] = { 42, 9, 23, 101, 99, 22, 13, 5, 77, 28 };
for (int i = 0; i < size; i )
{
if (values[i] % 2 != 0)
{
cout << (values[i] * 2) << endl;
}
}
return 0;
}
輸出
它乘以奇數,這是我想要的,但不是每一個都在他們自己的行中。此外,新的偶數需要與原始偶數一起出現。
uj5u.com熱心網友回復:
您提到您是編程新手。因此,我們需要根據這一事實調整我們的答案。您還不知道標準庫中的所有現有函式。所以,讓我們想出一個非常簡單的解決方案。
顯然我們需要先從陣列中列印原始未修改的日期。因此,我們將輸出初始文本,然后遍歷陣列中的所有元素并按原樣輸出它們。
接下來,我們顯示第二個標簽字串,然后再次遍歷陣列中的所有元素。我們檢查每個值,如果它是奇數。如果是,那么我們列印這個值的兩倍,否則,我們顯示為未修改的值。
請查看下面的一種可能的解決方法:
#include <iostream>
using namespace std;
int main() {
// Size of our array
int const size = 10;
// Arry with some random sample data
int values[size] = { 42, 9, 23, 101, 99, 22, 13, 5, 77, 28 };
// Show the original array
cout << "\nThe original array is: ";
for (int i = 0; i < size; i) cout << values[i] << ' ';
// Now show check for odd numbers
cout << "\nYour even number array is: ";
// Show result
for (int i = 0; i < size; i)
if (values[i] % 2 != 0)
cout << (values[i] * 2) << ' ';
else
cout << values[i] << ' ';
cout << '\n';
}
uj5u.com熱心網友回復:
轉換本身看起來很簡單。有多種方法可以完成這項作業。這是一種可能性:
std::transform(b, e, b, [](auto v) { return v * ((v & 1) 1); });
作為一個公平的警告:如果你把它作為家庭作業,無論誰教這門課,都可能會問一些關于它是如何運作的深刻而尖銳的問題,如果你沒有表現出同樣深刻理解的答案,就會開始變得非常懷疑.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537352.html
標籤:C 数组数字
上一篇:我似乎無法從陣列中洗掉數字小數
