C/ C++,a005: Eva 的回家作業@0判
FB2:http://gg.gg/TedLeeMicrobitFB/
URL2:http://gg.gg/TedLeeMicrobit/
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
URL1:http://gg.gg/TedLeeURL/
May. 16, 2020
問題解決(Problem Solving)之逻輯思維 =
心法: 程式設計哲思(Philosophical Thinking for Programming) +
技法:程式設計工法(Skills for Programming)
解析:
- 直接run結果建立直觀:。
- Idea:將test data讀入(存在1-D陣列data[]中)後計算結果(等差或等比),再依題目需求編排輸出格式。
- 一般測資(例如:open data)會以CSV(Comma Separated Values)、XML(Extensible Markup Language)或JSON(JavaScript Object Notation)格式(format)儲存。所以,programmer會呼叫parser來幫忙將raw data讀進memory中。讀進來的資料常會以array、structures、甚或data base的tables革等data structures來儲存。
- 用scanf()讀console輸入的字串時要留意字串結尾控制碼'\0'的額外處理。
- 學習要學一般的通則(general purpose),這樣會一理通、萬理通。所以,我們乖乖的從stdin讀入data後,存在內部的資料結構。經運算後再丟到stdout(實際應用可能是用.txt、.csv、.xml、.json格式存)。
#include <iostream>
using namespace std;
int data[100];
void printArray(int t) {
int i = 0;
for (i=0; i<5*t; i++) {
cout << data[i] << " ";
if ((i+1)%5==0) {
cout << endl;
}
}
}
int main(void) {
//int data[100]={1, 2, 3, 4, 0, 1, 2, 4, 8, 0, 4, 6, 8, 10, 0};
int i = 0;
int d1 = 0;
int d2 = 0;
int r1 = 0;
int r2 = 0;
int t = 0;
int j = 0;
int lf = 0;
//讀入數列筆數
cin >> t;
for (i=0; i<t; i++) {
for (j=0; j<4; j++) {
cin >> lf;
data[i*5+j] = lf;
}
}
//printArray();
for (i=0; i<100; i+=5) {
d1 = data[i+3] - data[i+2];
d2 = data[i+2] - data[i+1];
if (d1 == d2) { //處理等差
data[i+4] = data[i+3] + d1;
} else { //處理等比
r1 = data[i+3] / data[i+2];
r2 = data[i+2] / data[i+1];
data[i+4] = data[i+3] * r1;
}
}
printArray(t);
return 0;
}
FB2:http://gg.gg/TedLeeMicrobitFB/
URL2:http://gg.gg/TedLeeMicrobit/
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
URL1:http://gg.gg/TedLeeURL/
URL1:http://gg.gg/TedLeeURL/
May. 16, 2020
問題解決(Problem Solving)之逻輯思維 =
心法: 程式設計哲思(Philosophical Thinking for Programming) +
技法:程式設計工法(Skills for Programming)
解析:
- 直接run結果建立直觀:。
- Idea:將test data讀入(存在1-D陣列data[]中)後計算結果(等差或等比),再依題目需求編排輸出格式。
- 一般測資(例如:open data)會以CSV(Comma Separated Values)、XML(Extensible Markup Language)或JSON(JavaScript Object Notation)格式(format)儲存。所以,programmer會呼叫parser來幫忙將raw data讀進memory中。讀進來的資料常會以array、structures、甚或data base的tables革等data structures來儲存。
- 用scanf()讀console輸入的字串時要留意字串結尾控制碼'\0'的額外處理。
- 學習要學一般的通則(general purpose),這樣會一理通、萬理通。所以,我們乖乖的從stdin讀入data後,存在內部的資料結構。經運算後再丟到stdout(實際應用可能是用.txt、.csv、.xml、.json格式存)。
#include <iostream>
using namespace std;
int data[100];
void printArray(int t) {
int i = 0;
for (i=0; i<5*t; i++) {
cout << data[i] << " ";
if ((i+1)%5==0) {
cout << endl;
}
}
}
int main(void) {
//int data[100]={1, 2, 3, 4, 0, 1, 2, 4, 8, 0, 4, 6, 8, 10, 0};
int i = 0;
int d1 = 0;
int d2 = 0;
int r1 = 0;
int r2 = 0;
int t = 0;
int j = 0;
int lf = 0;
//讀入數列筆數
cin >> t;
for (i=0; i<t; i++) {
for (j=0; j<4; j++) {
cin >> lf;
data[i*5+j] = lf;
}
}
//printArray();
for (i=0; i<100; i+=5) {
d1 = data[i+3] - data[i+2];
d2 = data[i+2] - data[i+1];
if (d1 == d2) { //處理等差
data[i+4] = data[i+3] + d1;
} else { //處理等比
r1 = data[i+3] / data[i+2];
r2 = data[i+2] / data[i+1];
data[i+4] = data[i+3] * r1;
}
}
printArray(t);
return 0;
}
using namespace std;
int data[100];
void printArray(int t) {
int i = 0;
for (i=0; i<5*t; i++) {
cout << data[i] << " ";
if ((i+1)%5==0) {
cout << endl;
}
}
}
int main(void) {
//int data[100]={1, 2, 3, 4, 0, 1, 2, 4, 8, 0, 4, 6, 8, 10, 0};
int i = 0;
int d1 = 0;
int d2 = 0;
int r1 = 0;
int r2 = 0;
int t = 0;
int j = 0;
int lf = 0;
//讀入數列筆數
cin >> t;
for (i=0; i<t; i++) {
for (j=0; j<4; j++) {
cin >> lf;
data[i*5+j] = lf;
}
}
//printArray();
for (i=0; i<100; i+=5) {
d1 = data[i+3] - data[i+2];
d2 = data[i+2] - data[i+1];
if (d1 == d2) { //處理等差
data[i+4] = data[i+3] + d1;
} else { //處理等比
r1 = data[i+3] / data[i+2];
r2 = data[i+2] / data[i+1];
data[i+4] = data[i+3] * r1;
}
}
printArray(t);
return 0;
}
沒有留言:
張貼留言