《明解C語言》筆記及課後習題答案 【第三章】
阿新 • • 發佈:2019-02-01
練習3-1
/*---輸入兩個整數,判斷後者是否為前者的約數---*/
#include <stdio.h>
int main(void)
{
int a,b;
puts("請輸入兩個整數。");
printf("整數a:");
scanf("%d",&a);
printf("整數b:");
scanf("%d",&b);
if(a%b)
puts("b不為a的公約數");
else
puts("b為a的公約數");
return 0;
}
練習3-2
/*---if語句結尾用else if結果會怎樣---*/ #include <stdio.h> int main(void) { int a; scanf("%d",&a); if(a == 0) puts("a為0"); else if(a < 0 ) puts("a為負數"); else if(a > 0 ) puts("a為正數"); //執行結果正常 return 0; }
練習3-3
/*---輸出一個數的絕對值---*/
#include <stdio.h>
int main(void)
{
int a;
printf("請輸入一個數:");
scanf("%d",&a);
if(a >= 0)
printf("絕對值是%d",a);
else
printf("絕對值是%d",-a);
return 0;
}
練習3-4
/*---輸入兩個數並判斷大小---*/ #include <stdio.h> int main(void) { int a, b; puts("請輸入兩個數。"); printf("整數A:"); scanf("%d",&a); printf("整數B:"); scanf("%d",&b); if(a == b) printf("a和b相等"); else if(a >b ) printf("a大於b"); else printf("a小於b"); return 0; }
練習3-6
/*---計算出輸入的三個整數中的最小值並顯示---*/ #include <stdio.h> int main(void) { int a, b, c,min; puts("請輸入三個整數."); printf("整數a:"); scanf("%d",&a); printf("整數b:"); scanf("%d",&b); printf("整數c:"); scanf("%d",&c); min = a; if(b < min) min = b; if(c < min) min = c; printf("最小值為%d",min); return 0; }
練習3-7
/*---輸入的四個整數中的最大值並顯示---*/
#include <stdio.h>
int main(void)
{
int a, b, c,max;
puts("請輸入三個整數.");
printf("整數a:");
scanf("%d",&a);
printf("整數b:");
scanf("%d",&b);
printf("整數c:");
scanf("%d",&c);
max = a;
if(b > max)
max = b;
if(c > max)
max = c;
printf("最大值為%d",max);
return 0;
}
練習3-8
/*---使用if語句代替條件按運算子---*/
#include <stdio.h>
int main(void)
{
int n1, n2;
puts("請輸入兩個整數。");
printf("整數1:"); scanf("%d",&n1);
printf("整數2:"); scanf("%d",&n2);
if(n1>n2)
printf("它們的差是%d。\n",n1-n2);
else
printf("它們的差是%d。\n",n2-n1);
return 0;
}
練習3-9
/*---用條件運算子改寫程式---*/
#include <stdio.h>
int main(void)
{
int num;
printf("請輸入一個整數:");
scanf("%d",&num);
(num == 0)?puts("該整數是0"):puts("該整數不是0");
return 0;
}
練習3-10
/*---輸入三個數,如果有三個相等,則輸出有三個值相等,
以此類推,輸出三種不同結果。---*/
#include <stdio.h>
int main(void)
{
int a, b, c;
puts("請輸入三個整數。");
printf("整數A:"); scanf("%d",&a);
printf("整數B:"); scanf("%d",&b);
printf("整數C:"); scanf("%d",&c);
if(a == b && b == c)
printf("三個值都相等");
else if(a == b || b == c || a == c)
printf("有兩個值相等");
else
printf("三個值各不相等");
return 0;
}
練習3-11
/*---用邏輯或運算子計算差值---*/
#include <stdio.h>
int main(void)
{
int a, b;
puts("請輸入兩個整數。");
printf("整數A:"); scanf("%d",&a);
printf("整數B:"); scanf("%d",&b);
if((a-b) <= 10 || (a-b) == 0)
printf("它們的差小於等於10。");
else
puts("它們的差大於等於11。");
return 0;
}
練習3-12
/*---用swith語句改寫程式---*/
#include <stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數:");
scanf("%d",&no);
switch(no%2){
case 0: puts("該整數是偶數。"); break;
default: puts("該數是奇數。");
}
return 0;
}
練習3-13
/*---使用switch語句修改程式---*/
#include <stdio.h>
int main(void)
{
int month;
printf("請輸入月份:");
scanf("%d",&month);
switch (month) {
case 3:
case 4:
case 5:
printf("%d月是春季。\n",month); break;
case 6:
case 7:
case 8:
printf("%d月是夏季。\n",month); break;
case 9:
case 10:
case 11:
printf("%d月是秋季。\n",month); break;
case 12:
case 1:
case 2:
printf("%d月是冬季。\n",month); break;
default :
printf("%d月不存在!!\a\n",month);
return 0;
}
}
關係運算符:比較兩個運算元大小關係的運算子稱為關係運算符。
條件運算子:
複合語句(程式塊):
邏輯運算子:
&&(邏輯與運算子) ||(邏輯或運算子)
switch語句: