微剋多資訊

 找回密碼
 註冊

Login

Login

搜索

該用戶從未簽到

發表於 2014-3-22 10:30 | 顯示全部樓層 |閱讀模式
本帖最後由 animejp 於 2014-3-22 10:46 編輯

於 2014.03.21 獲得作者劉邦鋒教授許可,授權後學公開此書籍所有內容
小小心願:如果有討論需求,期請於「作業題目」帖子回文討論;避免於「參考解答」帖子回文討論
目的:希望能完整排版、依序記錄,供學習者參考


作業4.1
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, min;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   min = (a < b)? a: b;
  
   min = (c < min)? c: min;
  
   printf("%d\n", min);
  
}
  

該用戶從未簽到

 樓主| 發表於 2014-3-22 10:49 | 顯示全部樓層
作業4.2
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, d, e, f, i, j ,k , max;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   scanf("%d", &d);
  
   scanf("%d", &e);
  
   scanf("%d", &f);
  
   i = a * a + b * b;
  
   j = c * c + d * d;
  
   k = e * e + f * f;
  
   if (i >= j && i >= k)
  
   {
  
     printf("%d\n", a);
  
     printf("%d\n", b);
  
   }
  
   else if (j >= i && j >= k)
  
   {
  
     printf("%d\n", c);
  
     printf("%d\n", d);
  
   }
  
   else
  
   {
  
     printf("%d\n", e);
  
     printf("%d\n", f);
  
   }
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 11:21 | 顯示全部樓層
作業4.3
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, d, area;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   scanf("%d", &d);
  
   area = (a - c) * (b - d);
  
   area = (area >= 0)? area: -area;
  
   printf("%d\n", area);
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 11:28 | 顯示全部樓層
作業4.4
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, d, x, y, circumference;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   scanf("%d", &d);
  
   x = a - c;
  
   y = b - d;
  
   x = (x > 0)? x: -x;
  
   y = (y > 0)? y: -y;
  
   circumference = (x + y) * 2;
  
   printf("%d\n", circumference);
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 11:52 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-22 12:12 編輯

作業4.5

b^2 - 4ac = 0 → 重根
b^2 - 4ac > 0 → 相異實根
b^2 - 4ac = 0 → 相異虛根
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, answer;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   answer = b * b - 4 * a * c;
  
   if (answer == 0)
  
     answer = 0;
  
   else if (answer > 0)
  
     answer = 1;
  
   else
  
     answer = -1;
  
   printf("%d\n", answer);
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 12:11 | 顯示全部樓層
作業4.6

任意兩邊和 > 第三邊
任意兩邊差 < 第三邊
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, i, j, k, l, m, n, answer;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   i = a + b;
  
   j = b + c;
  
   k = a + c;
  
   l = a - b;
  
   m = b - c;
  
   n = a - c;
  
   l = (l >= 0)? l: -l;
  
   m = (m >= 0)? m: -m;
  
   n = (n >= 0)? n: -n;
  
   answer = (i > c && j > a && k > b &&  l < c && m < a && n < b);
  
   printf("%d\n", answer);
  
}
  
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 12:36 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-22 12:39 編輯

作業4.7

等差級數和公式:(首項 + 末項) * 項數 / 2
項數公式:((末項 - 首項) / 公差) + 1
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, i, j, sum;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   i = (a < b)? a: b;
  
   j = (a > b)? a: b;
  
   sum = (i + j) * (((j - i) / 1) + 1) / 2;
  
   printf("%d\n", sum);
  
}

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 22:23 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-22 23:30 編輯

作業4.8

2短邊的平方相加 > 長邊的平方 → 銳角三角形 (3銳角)
2短邊的平方相加 = 長邊的平方 → 直角三角形 (1直角2銳角)
2短邊的平方相加 < 長邊的平方 → 鈍角三角形 (1鈍角2銳角)

假設最短邊為i, 第2短邊為j, 最長邊為k
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, i, j, k, answer;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
  
/*      判斷最短邊       */
  
   if (a <= b && a <= c)
  
     i = a;
  
   else if (b <= a && b <= c)
  
     i = b;
  
   else
  
     i = c;
  
  
/*      判斷第2短邊     */
  
   if ((a >= b && a <= c) || (a >= c && a <=  b))
  
     j = a;
  
   else if ((b >= a && b <= c) || (b >= c && b  <= a))
  
     j = b;
  
   else
  
     j = c;
  
  
/*      判斷最長邊       */
  
   if (a >= b && a >= c)
  
     k = a;
  
   else if (b >= a && b >= c)
  
     k = b;
  
   else
  
     k = c;
  
  
   if (i * i + j * j > k * k)
  
     answer = 1;
  
   else if (i * i + j * j < k * k)
  
     answer = 2;
  
   else
  
     answer = 3;
  
  
   printf("%d\n", answer);
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-22 23:26 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-22 23:31 編輯

作業4.9

假設
1.雞數量為a, 免子數量為b, 螃蟹數量為c
2.動物總數 totle = a + b + c
2.總腳數 legs = 2a + 4b + 8c
3.總尾巴數 tails = a + b
4.解聯立方程式
  
#include <stdio.h>
  
main()
  
{
  
   int total, legs, tails, a, b, c , output = 0;
  
   scanf("%d", &total);
  
   scanf("%d", &legs);
  
   scanf("%d", &tails);
  
  
   c = total - tails;
  
   a = (total * 4 - legs + 4 * c) / 2;
  
   b = (legs - total * 2 - 6 * c) / 2;
  
  
   if (a >= 0 && b >= 0 && c >= 0)
  
   {
  
     printf("%d\n", a);
  
     printf("%d\n", b);
  
     printf("%d\n", c);
  
   }
  
   else
  
     printf("%d\n", output);
  
}
  

回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 00:02 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-23 00:04 編輯

作業4.10

觀念:
因可以平移線段,只要證明三條線斜率皆不同,則必能形成三角形。

假設:
1.輸入坐標為依序為(a,b) (c,d) (e,f) (g,h) (i,j) (k,l)
2.線段的斜率為y值相減 / x值相減
3.線段一斜率為 y1 / x1;線段二斜率為 y2 / x2;線段三斜率為 y3 / x3
3.交叉相乘法
  
#include <stdio.h>
  
main()
  
{
  
   int a, b, c, d, e, f, g, h, i, j, k, l, x1, y1, x2, y2, x3, y3, answer;
  
   scanf("%d", &a);
  
   scanf("%d", &b);
  
   scanf("%d", &c);
  
   scanf("%d", &d);
  
   scanf("%d", &e);
  
   scanf("%d", &f);
  
   scanf("%d", &g);
  
   scanf("%d", &h);
  
   scanf("%d", &i);
  
   scanf("%d", &j);
  
   scanf("%d", &k);
  
   scanf("%d", &l);
  
  
   x1 = c - a;
  
   y1 = d - b;
  
   x2 = g - e;
  
   y2 = h - f;
  
   x3 = k - i;
  
   y3 = l - j;
  
  
   answer = (x1 * y2 != x2 * y1 && x2 * y3 != x3 * y2 &&  x1 * y3 != x3 * y1);
  
   printf("%d\n", answer);
  
}
回覆

使用道具 舉報

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2016-12-10 01:23

Discuz! X

© 2009-2016 Microduo

快速回覆 返回頂部 返回列表