# 18Dice C++解答版
:::info
嚴格抵制chatgpt複製貼上 以下程式全手寫
此為2025最新版 後面會陸續補上 by yyyy
:::
## 2.輸出函式
### 2-1 測試系統
```cpp=1
#include <iostream>
using namespace std;
int main(){
cout << "Hello, DICE!" << endl;
return 0;
}
```
### 2-2 Hello, World!
```cpp=1
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
cout << "Hello,World!";
return 0;
}
```
### 2-3 印aaa
```cpp=1
#include <iostream>
using namespace std;
int main() {
cout << "a" << endl;
cout << "aa" << endl;
cout << "aaa" << endl;
cout << "aaaa" << endl;
cout << "aaaaa" << endl;
cout << "aaaaaa" << endl;
cout << "aaaaa" << endl;
cout << "aaaa" << endl;
cout << "aaa" << endl;
cout << "aa" << endl;
cout << "a" << endl;
return 0;
}
```
### 2-4 不是計算
```cpp=1
#include <iostream>
using namespace std;
int main() {
cout << "2/3=5" << endl;
cout << "2*3=5" << endl;
return 0;
}
```
### 2-5 來個表格
```cpp=1
#include <iostream>
using namespace std;
int main() {
for (int i=1; i<=10; i++) {
cout << i << "\t" << i * i << "\t" << i*i*i << endl;
}
return 0;
}
```
## 3.變數與指定運算子
### 3-1 指定整數
```cpp=1
#include<iostream>
using namespace std;
int main(){
int num;
num=3;
cout<<num<<endl;
return 0;
}
```
### 3-2 加上一些形容詞
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n = 33;
cout << "There are " << n << " cats." << endl;
return 0;
}
```
### 3-3 指定浮點數
```cpp=1
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
float num1,num2;
num1=10.100001;
num2=5.200002;
cout<<fixed<<setprecision(6)<<num2<<endl;
cout<<fixed<<setprecision(6)<<num1<<endl;
return 0;
}
```
### 3-4 整數與浮點數
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int h;
float w;
h=170;
w=55.222;
cout << "My height is " << h << " cm." << endl;
cout << "My weight is " << fixed << setprecision(3) << w << " kg." << endl;
return 0;
}
```
### 3-5 不是等號
```cpp=1
#include <iostream>
using namespace std;
int main() {
int a,b;
a=55;
b=555;
a=b;
b=a;
cout << a << " " << b;
return 0;
}
```
## 4.輸入函數
### 4-1 1個整數
```cpp=1
#include<iostream>
using namespace std;
int main(){
int num;
cin >> num;
cout << num;
return 0;
}
```
### 4-2 3個整數
```cpp=1
#include <iostream>
using namespace std;
int main() {
int fi,se,th;
cin >> fi >> se >> th;
cout << th << " " << se << " " << fi;
return 0;
}
```
### 4-3 浮點數
```cpp=1
#include<bits/stdc++.h>
using namespace std;
int main(){
float num1,num2;
cin >> num1 >> num2;
cout << fixed << setprecision(6) << num1 << endl;
cout << fixed << setprecision(6) << num2;
return 0;
}
```
### 4-4 3個浮點數
```cpp=1
#include<bits/stdc++.h>
using namespace std;
int main(){
float num1,num2,num3;
cin >> num1 >> num2 >> num3;
cout<<fixed<<setprecision(3)<<num3 << endl;
cout<<fixed<<setprecision(2)<<num2 << endl;
cout<<fixed<<setprecision(1)<<num1 << endl;
return 0;
}
```
### 4-5 梯形上下底與高
```cpp=1
#include <iostream>
using namespace std;
int main() {
int l,w,h;
cin >> l >> w >> h;
cout << l << " " << w << " " << h;
return 0;
}
```
## 5.算術運算子
### 5-1 四則運算
```cpp=1
#include<iostream>
using namespace std;
int main(){
int num1,num2;
cin>>num1>>num2;
cout<<num1<<"+"<<num2<<"="<<num1+num2<<endl;
cout<<num1<<"-"<<num2<<"="<<num1-num2<<endl;
cout<<num1<<"*"<<num2<<"="<<num1*num2<<endl;
cout<<num1<<"/"<<num2<<"="<<num1/num2<<endl;
return 0;
}
```
### 5-2 餘數
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y;
cin >> x >> y;
cout << x << "/" << y << "=" << x/y << "餘" << x%y << endl;
cout << x/y + x%y;
return 0;
}
```
### 5-3 梯形面積
```cpp=1
#include <iostream>
using namespace std;
int main() {
int l,w,h;
float a;
cin >> l >> w >> h;
a = (float)(l+w)*h/2;
cout << "梯形面積" << a << "平方公分";
return 0;
}
```
### 5-4 溫度換算
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
float t,ans;
cin >> t;
ans = (float) (9.0/5.0)*t+32;
cout << "華氏溫度=" << fixed << setprecision(1) << ans << endl;
return 0;
}
```
### 5-5 三次溫度換算
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
float t,a,b;
cin >> t >> a >> b;
cout << "1.華氏溫度=" << fixed << setprecision(1) << (float) (9.0/5.0)*t+32 << endl;
cout << "2.華氏溫度=" << fixed << setprecision(1) << (float) (9.0/5.0)*a+32 << endl;
cout << "3.華氏溫度=" << fixed << setprecision(1) << (float) (9.0/5.0)*b+32 << endl;
return 0;
}
```
### 5-6 時間計算
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,t;
cin >> x;
t = 95*x;
cout << t << endl;
cout << x << "個粽子共需要" << t/60 << "分" << t` << "秒" << endl;
return 0;
}
```
### 5-7 圓周與面積
```cpp=1
#include<bits/stdc++.h>
using namespace std;
int main(){
int r;
cin >> r;
cout << "圓周" << fixed << setprecision(1) << 2*r*3.14 << endl;
cout << "圓的面積" << fixed << setprecision(1) << r*r*3.14;
}
```
## 6.單一選擇
### 6-1 及格嗎?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s;
cin >> s;
if(s>=60)
cout << s << "分及格" << endl;
cout<<"Over!" << endl;
return 0;
}
```
### 6-2 正數?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i;
cin >> i;
if (i>0) cout << i << "是正數" << endl;
cout << "Over!";
return 0;
}
```
### 6-3 偶數?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
if (x%2==0) cout << x << "是偶數" << endl;
cout << "Over!";
return 0;
}
```
### 6-4 發現不相等
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y;
cin >> x >> y;
if (x!=y) cout << x << "!=" << y << endl;
cout << "Over!";
return 0;
}
```
### 6-5 輸出正數
```cpp=1
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
float x;
cin >> x;
if(x<0) cout << fixed << setprecision(2) << x*(-1) << endl;
else cout << fixed << setprecision(2) << x << endl;
}
```
### 6-6 自主學習
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i, it;
int prices[5] = {0, 2300, 800, 500, 1500};
cin >> i >> it;
int total = prices[i] + prices[it];
if (total > 3000)
cout << "超出預算" << endl;
else
cout << "符合預算" << endl;
return 0;
}
```
## 7.用if交換變數
### 7-1 比大小
```cpp=1
#include <iostream>
using namespace std;
int main(){
int a,b,max;
cin >> a >> b;
max=a;
if(b>max){
max=b;
}
cout << "最大值" << max << endl;
return 0;
}
```
### 7-2 三數比大小
```cpp=1
#include <iostream>
using namespace std;
int main() {
int mx,i,mn,n = 3;
mx = -1;
mn = 100;
while(n--){
cin >> i;
mx = max(i,mx);
mn = min(i,mn);
}
cout << mx << " " << mn;
return 0;
}
```
### 7-3 五數比大小
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i,mx=-1,mn=100,n=5;
while(n--){
cin >> i;
mx = max(i,mx);
mn = min(i,mn);
}
cout << mx << " " << mn;
return 0;
}
```
### 7-4 自主學習
```cpp=1
#include <iostream>
using namespace std;
int main() {
int y;
cin >> y;
if (y%400==0) cout << "閏年";
else if (y%100==0 && y%400!=0) cout << "平年";
else if (y%100!=0 && y%4==0) cout << "閏年";
else cout << "平年";
return 0;
}
```
## 8.雙重選擇
### 8-1 及格與否
```cpp=1
#include <iostream>
using namespace std;
int main() {
int score;
cin>>score;
if(score>=60)
cout<<score<<"分及格\n";
else
cout<<score<<"分不及格\n";
return 0;
}
```
### 8-2 基數還是偶數?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i;
cin >> i;
cout << i << ": ";
if (i%2==0) cout << "偶數";
else cout << "奇數";
return 0;
}
```
### 8-3 是否能夠成三角形?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,z;
cin >> x >> y >> z;
cout << x << " " << y << " " << z << ": ";
if ( x+y>z && x+z>y && y+z>x) cout << "可以構成三角形" << endl;
else cout << "不可以構成三角形" << endl;
return 0;
}
```
### 8-4 是否直角三角形?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,z;
cin >> x >> y >> z;
if (x*x+y*y==z*z || y*y+z*z==x*x || x*x+z*z==y*y) cout << x << " " << y << " " << z << ": " << "直角三角形";
else cout << x << " " << y << " " << z << ": " << "不是直角三角形";
return 0;
}
```
### 8-5 是否與6相關?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
if (x%6==0 || x%10==6) cout << x << "符合標準";
else cout << x << "不符合標準";
return 0;
}
```
### 8-6 拆數字
```cpp=1
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
int d1 = num % 10;
int d2 = (num / 10) % 10;
int d3 = num / 100;
cout << d1 << d2 << d3 << endl;
return 0;
}
```
### 8-7 是否為5的倍數-2?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if((n/100)%5==0) cout << "百位數" << n/100 << "是5的倍數" << endl;
else cout << "百位數" << n/100 << "不是5的倍數" << endl;
if((n/10%10)%5==0) cout << "十位數" << n/10%10 << "是5的倍數" << endl;
else cout << "十位數" << n/10%10 << "不是5的倍數" << endl;
if((n%10)%5==0) cout << "個位數" << n%10 << "是5的倍數" << endl;
else cout << "個位數" << n%10 << "不是5的倍數" << endl;
return 0;
}
```
### 8-8 是否為迴文
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
string n;
cin >> n;
if (n[0] == n[4] && n[1] == n[3]) {
cout << n << ": 是迴文" << endl;
}
else {
cout << n << ": 不是迴文" << endl;
}
}
```
### 8-9 自主學習
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s;
cin >> s;
if (s==5) cout << "80分";
else if (s==7) cout << "64分";
else if (s==18) cout << "72分";
else cout << "成績不存在";
return 0;
}
```
## 9.巢狀選擇
### 9-1 分數等第
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s;
cin >> s;
if (s==5) cout << "80分";
else if (s==7) cout << "64分";
else if (s==18) cout << "72分";
else cout << "成績不存在";
return 0;
}
```
### 9-2 正三角形嗎?
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,z;
cin >> x >> y >> z;
cout << x << " " << y << " " << z << ": ";
if(x==y && y==z) cout << "正三角形";
else if (x+y>z && x+z>y && y+z>x) cout << "非正三角形";
else cout << "無法構成三角形";
return 0;
}
```
### 9-3 玩玩二分法
```cpp=1
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
if (n>0){
cout << n << "是正數" << endl;
if(n<=10000) cout << "小於等於10000: A";
else cout << "大於10000: B";
}
else{
cout << n << "是負數" << endl;
if(n<=-10000) cout << "小於等於-10000: C";
else cout << "大於-10000: D";
}
return 0;
}
```
### 9-4 自主學習
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
char ch;
cin >> ch;
if (isupper(ch)) cout << "大寫" << endl;
else if (islower(ch)) cout << "小寫" << endl;
else cout << "都不是" << endl;
return 0;
}
```
## 10.多選一
### 10-1 分數等第
```cpp=1
#include <iostream>
using namespace std;
int main(){
int x;
cin>>x;
if(x>100 ||x<0)
cout<<"error data"<<endl;
else if(x>=90)
cout<<"Your score is "<<x<<" and degree is A!\n";
else if(x>=80)
cout<<"Your score is "<<x<<" and degree is B!\n";
else if(x>=70)
cout<<"Your score is "<<x<<" and degree is C!\n";
else if(x>=60)
cout<<"Your score is "<<x<<" and degree is D!\n";
else
cout<<"Your score is "<<x<<" and degree is F!\n";
return 0;
}
```
### 10-2 點套餐
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i;
cin >> i;
if (i==1) cout << "牛奶" << endl << "西瓜" << endl << "檸檬水" << endl << "吐司";
else if (i==2) cout << "西瓜" << endl << "檸檬水" << endl << "吐司";
else if (i==3) cout << "檸檬水" << endl << "吐司";
else if (i==4) cout << "吐司";
else cout << "超出範圍";
return 0;
}
```
### 10-3 象限
```cpp=1
#include <iostream>
using namespace std;
int main() {
float x,y;
cin >> x >> y;
if (x==0.0){
if (y==0.0) cout << "原點";
else cout << "y軸";
}
else if(y==0.0) cout << "x軸";
else if(x>0.0){
if (y>0.0) cout << "第一象限";
else cout << "第四象限";
}
else{
if (y>0.0) cout << "第二象限";
else cout << "第三象限";
}
return 0;
}
```
### 10-4 年齡說
```cpp=1
#include <iostream>
using namespace std;
int main() {
int y;
cin >> y;
if (1<=y && y<=14) cout << y << "歲是小孩子";
else if (15<=y && y<=29) cout << y << "歲是志於學";
else if (30<=y && y<=39) cout << y << "歲是而立之年";
else if (40<=y && y<=49) cout << y << "歲是不惑之年";
else if (50<=y && y<=59) cout << y << "歲是知天命之年";
else if (60<=y && y<=69) cout << y << "歲是耳順之年";
else cout << y << "歲是從心所欲,不逾矩之年";
return 0;
}
```
### 10-5 三角形型別
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,z;
cin >> x >> y >> z;
if (x+y>z && y+z>x && x+z>y){
if (x==y && y==z) cout << x << " " << y << " " << z << ": " << "正三角形" << endl;
else if (x*x+y*y==z*z || x*x+z*z==y*y || z*z+y*y==x*x) cout << x << " " << y << " " << z << ": " << "直角三角形" << endl;
else if (x==y || y==z || x==z) cout << x << " " << y << " " << z << ": " << "等腰三角形" << endl;
else cout << x << " " << y << " " << z << ": " << "一般三角形" << endl;
}
else{
cout << x << " " << y << " " << z << ": " << "無法構成三角形" << endl;
}
return 0;
}
```
## 11.多選一:switch
### 11-1 字元
```cpp=1
#include <iostream>
using namespace std;
int main(){
char ch;
cin >> ch;
cout << ch;
return 0;
}
```
### 11-2 點套餐
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
char s;
cin >> s;
switch (s) {
case 'A':
cout << "牛奶" << endl;
cout << "西瓜" << endl;
cout << "檸檬水" << endl;
cout << "吐司" << endl;
break;
case 'B':
cout << "西瓜" << endl;
cout << "檸檬水" << endl;
cout << "吐司" << endl;
break;
case 'C':
cout << "檸檬水" << endl;
cout << "吐司" << endl;
break;
default:
cout << "吐司" << endl;
}
}
```
### 11-3 點食物
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
char s;
cin >> s;
switch (s) {
case 'A':
case 'a':
cout << "牛奶" << endl;
break;
case 'B':
case 'b':
cout << "西瓜" << endl;
break;
case 'C':
case 'c':
cout << "檸檬水" << endl;
break;
default:
cout << "吐司" << endl;
}
}
```
### 11-4 運算
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
char s;
int x,y;
cin >> s >> x >> y;
switch (s) {
case 'A':
case 'a':
cout << x << "+" << y << "=" << x+y << endl;
break;
case 'B':
case 'b':
cout << x << "-" << y << "=" << x-y << endl;
break;
case 'C':
case 'c':
cout << x << "*" << y << "=" << x*y << endl;
break;
case 'D':
case 'd':
cout << x << "/" << y << "=" << x/y << endl;
break;
default:
cout << x << "%" << y << "=" << x%y << endl;
}
}
```
### 11-5 運算列表
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
char s;
int x,y;
cin >> s >> x >> y;
switch (s) {
case 'A':
case 'a':
cout << x << "+" << y << "=" << x+y << endl;
cout << x << "-" << y << "=" << x-y << endl;
cout << x << "*" << y << "=" << x*y << endl;
cout << x << "/" << y << "=" << x/y << endl;
cout << x%y;
break;
case 'B':
case 'b':
cout << x << "-" << y << "=" << x-y << endl;
cout << x << "*" << y << "=" << x*y << endl;
cout << x << "/" << y << "=" << x/y << endl;
cout << x%y;
break;
case 'C':
case 'c':
cout << x << "*" << y << "=" << x*y << endl;
cout << x << "/" << y << "=" << x/y << endl;
cout << x%y;
break;
case 'D':
case 'd':
cout << x << "/" << y << "=" << x/y << endl;
cout << x%y;
break;
default:
cout << x%y << endl;
}
}
```
### 11-6 自主學習
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
char op;
cin >> a >> op >> b;
int result;
switch (op) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
result = a / b;
break;
case '%':
result = a % b;
break;
case '^':
result = pow(a, b);
break;
case '#':
result = pow(a, 1.0 / b);
break;
}
cout << result << endl;
return 0;
}
```
## 12.直覺不結構
### 12-1 印10次
```cpp=1
#include <iostream>
using namespace std;
int main(){
int i=0;
repeat:
cout<<"HaHaHa!\n";
i=i+1;
if (i<10){
goto repeat;
}
return 0;
}
```
### 12-2 印N次
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while (n--){
cout << "HaHaHa!" << endl;
}
return 0;
}
```
### 12-3 月份判斷
```cpp=1
#include <iostream>
using namespace std;
int main() {
int m;
while(true){
cin >> m;
if (m<=0) break;
else if (m==12 || m==1 || m==2) cout << m << "月是冬天" << endl;
else if (3<=m && m<=5) cout << m << "月是春天" << endl;
else if (6<=m && m<=8) cout << m << "月是夏天" << endl;
else if (9<=m && m<=11) cout << m << "月是秋天" << endl;
else cout << "超出範圍" << endl;
}
return 0;
}
```
### 12-4 自主學習
```cpp=1
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 5; i++) {
int a1, a2, a3, a4, a5;
cin >> a1 >> a2 >> a3 >> a4 >> a5;
if (a1 > a2 && a2 > a3 && a3 > a4 && a4 > a5) {
cout << "此數列嚴格遞減" << endl;
cout << "此數列遞減" << endl;
}
else if (a1 >= a2 && a2 >= a3 && a3 >= a4 && a4 >= a5) {
cout << "此數列遞減" << endl;
}
else {
cout << "End" << endl;
}
}
return 0;
}
```
## 13.重複-計數器控制
### 13-1 基數還是偶數?
```cpp=1
#include <iostream>
using namespace std;
int main(){
int i,num;
i=1;
while(i<=10){
cin>>num;
if(num%2==0){
cout<<num<<"是偶數"<<endl;
}
}
else{
cout<<num<<"是奇數"<<endl;
}
i=i+1;
}
```
### 13-2 印100次
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n=100;
while(n--){
cout << "HaHaHa!印我100次" << endl;
}
return 0;
}
```
### 13-3 印n次
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while(n--){
cout << "這是重複結構的固定次數範例" << endl;
}
return 0;
}
```
### 13-4 輸入10個浮點數
```cpp=1
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
for (int i = 0; i < 10; i++) {
cout << fixed << setprecision(2) << arr[i] << endl;
}
}
```
### 13-5 累加
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,tt=0;
for(int i=1; i<=10; i++){
cin >> x;
tt+=x;
cout << "第" << i << "次累加" << tt << endl;
}
cout << "累加和: " << tt;
return 0;
}
```
### 13-6 輸入N個浮點數
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
double num;
cin >> num;
cout << fixed << setprecision(2) << num << endl;
}
}
```
### 13-7 計算總合
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
double tt=0;
cin >> n;
for (int i = 0; i < n; i++) {
double num;
cin >> num;
tt += num;
}
cout << fixed << setprecision(2) << tt << endl;
}
```
### 13-8 計算平均
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
double tt=0;
cin >> n;
for (int i = 0; i < n; i++) {
double num;
cin >> num;
tt += num;
}
cout << fixed << setprecision(2) << tt << endl;
cout << fixed << setprecision(2) << tt/n << endl;
}
```
### 13-9最高分
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
double mx=-1;
cin >> n;
for (int i = 0; i < n; i++) {
double num;
cin >> num;
if(num>mx) mx = num;
}
cout << fixed << setprecision(2) << mx << endl;
}
```
### 13-10 成績計算
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n,x,y;
cin >> n;
while (n--){
cin >> x >> y;
cout << x+y << endl;
}
return 0;
}
```
### 13-11 自主學習
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for(int i=2; i<=n; i++){
bool t=true;
for(int j=2; j<i; j++){
if(i%j==0) t=false;
}
if(!t) cout << i << endl;
}
return 0;
}
```
## 14.重複-警示值控制
### 14-1 基數還是偶數?
```cpp=1
#include <iostream>
using namespace std;
int main()
{
int num;
cin >> num;
while(num!=0){
if(num%2==0){
cout << num << "是偶數" <<endl;
}
else{
cout << num << "是奇數" << endl;
}
cin >> num;
}
return 0;
}
```
### 14-2 印到我說停
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x;
while(true){
cin >> x;
if (x == 0) break;
cout << "警示值範例程式!" << endl;
}
return 0;
}
```
### 14-3 直到我說停
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s;
while(true){
cin >> s;
if(s < 0) break;
cout << s << endl;
}
return 0;
}
```
### 14-4 重複幾次
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s,t=0;
while(true){
cin >> s;
if (s < 0) break;
t++;
}
cout << t << "筆資料";
return 0;
}
```
### 14-5 班級均分-總和
```cpp=1
#include <iostream>
using namespace std;
int main() {
int s,tt=0;
while(true){
cin >> s;
if (s<0) break;
tt += s;
}
cout << "總和=" << tt;
return 0;
}
```
### 14-6 班級均分-完成
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int s,tt=0,t=0;
float ans;
while(true){
cin >> s;
if (s<0) break;
tt += s;
t += 1;
}
ans = (float)tt/t;
cout << "總和=" << tt << endl;
cout << "平均=" << fixed << setprecision(2) << ans << endl;
return 0;
}
```
### 14-7 最高分
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,mx=-1;
while(true){
cin >> x;
if (x<=0) break;
if (x > mx) mx = x;
}
cout << mx;
return 0;
}
```
### 14-8 自主學習
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
while (true) {
int n;
cin >> n;
if (n <= 1) break;
bool isPrime = true;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
isPrime = false;
break;
}
}
if (isPrime) cout << "質數" << endl;
else cout << "合數" << endl;
}
return 0;
}
```
## 15.for
### 15-1 1到100和
```cpp=1
#include <iostream>
using namespace std;
int main() {
int i, sum;
for (i = 1, sum = 0; i <= 100; i++) {
sum = sum + i;
}
cout << "1+2+3+...+100=" << sum << endl;
return 0;
}
```
### 15-2 奇數和
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int sum = 0;
for (int i = 1; i <= 99; i += 2) {
sum += i;
}
cout << "1+3+5+...+99=" << sum << endl;
return 0;
}
```
### 15-3 偶數和
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int sum = 0;
for (int i = 2; i <= 100; i += 2) {
sum += i;
}
cout << "2+4+6+...+100=" << sum << endl;
return 0;
}
```
### 15-4 1到N之和
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n,sum=0;
cin >> n;
for (int i=1; i<=n; i++){
sum += i;
}
cout << "1+2+3+...+n=" << sum;
return 0;
}
```
### 15-5 X到Y之和
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,sum=0;
cin >> x >> y;
for (int i=x; i<=y; i++){
sum += i;
}
cout << "x到y的和=" << sum;
return 0;
}
```
### 15-6 遞減值
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for(int i=1000; i>0; i-=n){
cout << i << " ";
}
return 0;
}
```
### 15-7 公比
```cpp=1
#include <iostream>
using namespace std;
int main() {
int r, li;
cin >> r >> li;
cout << "公比數列: ";
long long term = 1; // 起始值
while (term <= li) {
cout << term << " ";
term *= r;
}
return 0;
}
```
### 15-8 等比級數公式
```cpp=1
#include <iostream>
using namespace std;
int main() {
int a, an, r;
int tt = 0;
cin >> a >> an >> r;
for (int i = a; i <= an; i *= r) {
tt += i;
}
cout << "首項: " << a << endl;
cout << "末項: " << an << endl;
cout << "公比: " << r << endl;
cout << "公比數列: " << tt << endl;
return 0;
}
```
### 15-9 二的次方數
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i=1;;i*=2){
if (i>n){
cout << "第一個大於" << n << "的數是" << i;
break;
}
}
return 0;
}
```
### 15-10 自主學習
```cpp=1
#include <iostream>
using namespace std;
int f(int n){
if(n==1) return 10;
if(n==2) return 15;
if(n==3) return 16;
return f(n-2)+f(n-3);
}
int main() {
int n;
cin >> n;
cout << f(n) << endl;
return 0;
}
```
## 16.重複結構與判斷式
### 16-1 及格與不及格人數
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,pass=0,un=0,hi=0;
for(int i=1; i<=10;i++){
cin >> x;
if (x>=60){
pass+=1;
if (x>=80) hi+=1;
}
else un+=1;
}
cout << "及格" << pass << "人" << endl;
cout << "不及格" << un << "人" << endl;
cout << "超過80分" << hi << "人" << endl;
return 0;
}
```
### 16-2 最大公因數
```cpp=1
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
int m = min(a, min(b, c));
int gc = 1;
cout << a << " " << b << " " << c << "的公因數";
for (int i = 1; i <= m; i++) {
if (a % i == 0 && b % i == 0 && c % i == 0) {
cout << i << " ";
gc = i;
}
}
cout << endl;
cout << a << " " << b << " " << c << "的最大公因數" << gc << endl;
return 0;
}
```
### 16-3 if...break
```cpp=1
#include <iostream>
using namespace std;
int main()
{
int i,n,sum;
cin>>n;
for(i=2,sum=0;i<=n;i=i+2){
if (i % 10==0)
break;
cout<<i<<endl;
sum=sum+i;
}
cout<<sum<<endl;
return 0;
}
```
### 16-4 質數判斷
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
bool p = true;
for (int i = 2; i < n; i++) {
if (n % i == 0) {
p = false;
break;
}
}
if (p)
cout << n << ": 質數" << endl;
else
cout << n << ": 不是質數" << endl;
return 0;
}
```
### 16-5 互值
```cpp=1
#include <iostream>
using namespace std;
int main() {
int x,y,m;
bool t = true;
cin >> x >> y;
m = min(x,y);
for (int i=2; i<=m; i++){
if (x%i==0 && y%i==0){
t=false;
break;
}
}
if (t) cout << x << " " << y << ": " << "兩數互質";
else cout << x << " " << y << ": " << "兩數不互質";
return 0;
}
```
### 16-6 if...continue
```cpp=1
#include <iostream>
using namespace std;
int main()
{
int i,n,sum;
cin>>n;
for(i=2,sum=0;i<=n;i=i+2){
if (i % 10==0)
continue;
cout<<i<<endl;
sum=sum+i;
}
cout<<sum<<endl;
return 0;
}
```
### 16-7 5的倍數不加
```cpp=1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 5 != 0) {
cout << i << endl;
sum += i;
}
}
cout << sum << endl;
return 0;
}
```
### 16-8 相反數絕對值-EOF
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
while (cin >> n) {
cout << -n << " " << abs(n) << endl;
}
return 0;
}
```
### 16-9 象限-EOF
```cpp=1
#include <bits/stdc++.h>
using namespace std;
int main() {
float x,y;
while (cin >> x >> y) {
if (x>0 && y>0) cout << "第一象限" << endl;
else if (x<0 && y>0) cout << "第二象限" << endl;
else if (x<0 && y<0) cout << "第三象限" << endl;
else if (x>0 && y<0) cout << "第四象限" << endl;
else if (x==0 && y!=0) cout << "y軸" << endl;
else if (x!=0 && y==0) cout << "x軸" << endl;
else cout << "原點" << endl;
}
return 0;
}
```
### 16-10(C語言)
```cpp=1
#include <stdio.h>
int main()
{
int grade,aCount=0,bCount=0,cCount=0,dCount=0,fCount=0;
while((grade=getchar())!=EOF){
switch(grade){
case 'A':
case 'a':
++aCount;
break;
case 'B':
case 'b':
++bCount;
break;
case 'C':
case 'c':
++cCount;
break;
case 'D':
case 'd':
++dCount;
break;
case 'F':
case 'f':
++fCount;
break;
default:
break;
}
}
printf("A %d人\n",aCount);
printf("B %d人\n",bCount);
printf("C %d人\n",cCount);
printf("D %d人\n",dCount);
printf("F %d人\n",fCount);
return 0;
}
```
### 16-11
```cpp=1
#include <iostream>
#include <string>
using namespace std;
int main() {
string in;
cin >> in;
size_t pos = in.find("GG");
if (pos != string::npos) {
cout << pos + 2 << endl;
} else {
cout << "未找到 GG" << endl;
}
return 0;
}
```