SOGO論壇
  登入   註冊   找回密碼
查看: 996|回覆: 1
列印 上一主題 下一主題

[程式設計] 求救用這兩個程式碼做一個程式(我寫不出來) [複製連結]

Rank: 4

狀態︰ 離線
跳轉到指定樓層
1
發表於 2009-5-20 21:06:46 |只看該作者 |正序瀏覽
#include <stdio.h>

/*max函數的宣告 */
int max(int x, int y);

int main(void)
{
   int num1, num2, ans;
   int (*pM)(int x, int y);

   pM = max;

   printf("請輸入第1個數值。\n");
   scanf("%d",&num1);

   printf("請輸入第2個數值。\n");
   scanf("%d",&num2);

   ans = (*pM)(num1, num2);
   
   printf("最大值為%d。\n", ans);

   system("pause");
   return 0;
}

/* max函數的定義 */
int max(int x, int y)
{
   if (x > y)
      return x;
   else
      return y;
}

===================================================================================

#include <stdio.h>

/*  函數的宣告 */
void show0(void);
void show1(void);
void show2(void);

int main(void)
{
   void (*pM[3])(void);
   int num;

   pM[0] = show0;
   pM[1] = show1;
   pM[2] = show2;

   printf("要呼叫哪一種交通工具?(0:汽車 1:賽車 2:飛機)\n");
   scanf("%d",&num);

   if(0<= num && num <= 2)
      (*pM[num])();
   
   system("pause");
   return 0;
}

/* 函數的定義 */
void show0(void)
{
    printf("汽車。\n");
}
void show1(void)
{
    printf("賽車。\n");
}
void show2(void)
{
    printf("飛機。\n");
}

=============================================================================================
做成呼叫階層、加法、減法、乘法、除法、最大、最小、次方,在輸入兩個數值來運算
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 2

狀態︰ 離線
2
發表於 2009-5-27 01:26:09 |只看該作者
上面都是function pointer的範例
我想你要做的就是
先分別寫 階層、加法、減法、乘法、除法、最大、最小、次方 這幾個功能的function
eg:
int fac(int x){....}
int add(int x,int y){.....}
int sub(int x,int y){.....}
....等
然後main裡就像範例一樣宣告
   int (*pM[8])(int x, int y);
把每個 function pointer 指定好
eg:
pM[0] = fac;
pM[1] = add;
pM[2] = sub;
...等
再printf問要做哪種運算
scanf問到要算的數字和要做的運算
呼叫 (*pM[xxx])(x,y) 來計算答案
已有 1 人評分威望 收起 理由
紅塵孤鳥 + 2 熱心助人

總評分: 威望 + 2   查看全部評分

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-11-26 16:16

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部