本文整理 6 道典型選擇/循環練習,涵蓋分段計費、整除判斷、統計計數、條件篩選、平均值計算、逆序求和等核心考點。
需求:三種車型起步價 3km 內、超出後單價不同。輸入車型(1/2/3)與里程,輸出車費。
#include <stdio.h>
double fare(int type, double km) {
double base[3] = {7, 8, 9};
double extra[3] = {2.1, 2.4, 2.7};
if (km <= 3) return base[type-1] * km;
return base[type-1] * 3 + extra[type-1] * (km - 3);
}
int main() {
int type; double km;
printf("車型(1夏利 2富康 3桑塔納) 里程: ");
scanf("%d %lf", &type, &km);
if (type >= 1 && type <= 3)
printf("車費: %.2f\n", fare(type, km));
return 0;
}
需求:輸入兩整數,判斷第一個能否被第二個整除。
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
if (b != 0 && a % b == 0)
printf("%d 能整除 %d\n", a, b);
else
printf("%d 不能整除 %d\n", a, b);
return 0;
}
#include <stdio.h>
#define N 1000
int main() {
int a[N], n = 0, x;
printf("輸入整數(0結束): ");
while (n < N && scanf("%d", &x) == 1 && x != 0)
a[n++] = x;
int pos = 0, neg = 0;
for (int i = 0; i < n; i++)
if (a[i] > 0) pos++; else if (a[i] < 0) neg++;
printf("正數: %d 負數: %d\n", pos, neg);
return 0;
}
#include <stdio.h>
int main() {
int a[100], cnt = 0, sum = 0;
for (int i = 2; i <= 300; i += 2) // 只遍歷偶數
if (i % 7 == 0 || i % 17 == 0)
a[cnt++] = i;
for (int i = 0; i < cnt; i++) {
printf("%4d", a[i]);
if ((i+1) % 5 == 0) putchar('\n');
sum += a[i];
}
if (cnt % 5) putchar('\n');
printf("Sum = %d\n", sum);
return 0;
}
#include <stdio.h>
int main() {
long long even_sum = 0, odd_sum = 0;
int even_cnt = 0, odd_cnt = 0, x;
printf("輸入非零整數(0結束): ");
while (scanf("%d", &x) == 1 && x != 0) {
if (x % 2 == 0) { even_sum += x; even_cnt++; }
else { odd_sum += x; odd_cnt++; }
}
if (even_cnt) printf("偶數平均: %.2f\n", (double)even_sum / even_cnt);
if (odd_cnt) printf("奇數平均: %.2f\n", (double)odd_sum / odd_cnt);
return 0;
}
#include <stdio.h>
int main() {
int a[100], cnt = 0;
for (int i = 1; i <= 500; i++)
if (i % 13 == 0 || i % 17 == 0)
a[cnt++] = i;
int sum = 0;
for (int i = cnt - 1; i >= cnt - 10; i--) {
printf("%4d", a[i]);
sum += a[i];
}
printf("\nSum = %d\n", sum);
return 0;
}