全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:912
推到 Plurk!
推到 Facebook!

請問如何將這些程式合併成一個程式?

尚未結案

一般會員


發表:1
回覆:0
積分:0
註冊:2004-12-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-29 16:39:30 IP:218.166.xxx.xxx 未訂閱
 
(1)
#include 
#include 
/* 主程式 */
int main() {
   int courses[6][5]={0, 2, 0, 2, 0,
                      1, 4, 1, 4, 1,
                      5, 0, 5, 0, 5,
                      0, 0, 0, 0, 0,
                      3, 0, 3, 0, 3,
                      0, 0, 0, 0, 0 };
   int week_no;    
   int num;        
   int code;       
   printf("請輸入星期(1 到 5). ==> ");
   scanf("%d", &week_no);   
   printf("請輸入第幾節課(1 到 6). ==> ");
   scanf("%d", &num);       
   code = courses[num-1][week_no-1];
   printf("課程代碼: %d\n", code); 
   switch ( code ) {
      case 0: printf("沒課!\n");
              break;
      case 1: printf("計算機概論\n");
              break;
      case 2: printf("離散數學\n");
              break;
      case 3: printf("資料結構\n");
              break;
      case 4: printf("資料庫理論\n");
              break;
      case 5: printf("上機實習\n");
              break;
   }
   system("PAUSE");
   return 0; 
}
---------------------------------------------------
(2)
#include 
#include 
/* 主程式 */
int main() {
   int scores[10] = {76,85,90,67,59,79,82,95,91,65};
   int num;          
   int grade;       
   int i, choice;    
   int doit = 1;
   while ( doit ) {
      printf("----選單----\n"); 
      printf("1: 查詢成績\n");
      printf("2: 修改成績\n");
      printf("3: 顯示成績\n");
      printf("4: 離開作業\n");
      printf("請輸入選項( 1 到 4 ). ==> ");
      scanf("%d", &choice); 
      if (choice < 3 ) {
         printf("請輸入學生學號( 0 到 9). ==> ");
         scanf("%d", &num);  /* 讀入學號 */
      }
      switch( choice ) {
         case 1:  /* 查詢成績 */
            grade = scores[num];   
            printf("學生成績: %d\n", grade);
            break;
         case 2:  
            grade = scores[num];
            printf("原來學生成績: %d\n", grade);
            printf("輸入新成績. ==> ");
            scanf("%d", &grade);
            scores[num] = grade;    
            break;
         case 3:  
            printf("學生成績: \n");
            for ( i = 0; i < 10; i   )
               printf("%d:%d ", i, scores[i]);
            printf("\n");
            break;
         case 4:  
            doit = 0;
            break;
      }
   }   
   system("PAUSE");
   return 0; 
}
---------------------------------------------------
(3)
#include 
#include 
int main() {
   int i = 5;
   int *ptr = &i;
   int **ptr1 = &ptr;
   int ***ptr2 = &ptr1; 
   printf("i   = 位址=%p\n", i, &i);
   printf("ptr =%p 位址=%p\n", ptr, &ptr);
   printf("ptr1=%p 位址=%p\n", ptr1, &ptr1);
   printf("ptr2=%p 位址=%p\n", ptr2, &ptr2);
   printf("*ptr :位址%p的值=\n", ptr, *ptr);
   printf("*ptr1:位址%p的值=%p\n", ptr1, *ptr1);
   printf("*ptr2:位址%p的值=%p\n", ptr2, *ptr2);
   printf("*ptr   = %d\n", *ptr);
   printf("**ptr1 = %d\n", **ptr1);
   printf("***ptr2= %d\n", ***ptr2); 
   system("PAUSE");
   return 0; 
}
(4)
#include 
#include 
#define LEN       6
int main() {
   int i;
   int array[LEN] = { 1, 23, 33, 17, -40, 100 };
   int *ptr = array;  /* 第一個元素 */  
   for ( i = 0; i < LEN; i   )
      printf("array[%d]=%d ",i,array[i]);
   printf("\n");
   ptr = array;  /* 第一個元素 */ 
   for ( i = 0; i < LEN; i   )
      printf("ptr %d=%d ", i, *(ptr i));
   printf("\n");
   ptr = &array[0];  /* 第一個元素 */ 
   for ( i = 0; i < LEN; i   )
      printf("ptr %d=%d ", i, *ptr  );
   printf("\n");
   ptr = &array[LEN-1];  /* 最後一個元素 */ 
   for ( i = 0; i < LEN; i   )
      printf("ptr-%d=%d ", i, *ptr--);
   printf("\n");
   system("PAUSE");
   return 0; 
}
-------------------------------------------------------
(5)
/●Ch4-3-1.c●/
#include 
#include 
#include "Ch4-3.h"
#include "createList.c"
int main() {
   int temp;  
   int data[6]={ 1, 2, 3, 4, 5, 6 };
   List ptr;
      createList(6, data);   
   printf("原來的串列: ");
   printList();  
   printf("串列是否空的: %d\n", isListEmpty());
   temp = 0; 
   while ( temp != -1 ) {
      printf("請輸入搜尋的郵寄編號(-1結束) ==> ");
      scanf("%d", &temp);  
      if ( temp != -1 )    
         if ( searchNode(temp) != NULL ) 
            printf("串列包含節點[%d]\n", temp);
         else
            printf("串列不含節點[%d]\n", temp);
   }  
   system("PAUSE");
   return 0; 
}
----------------------------------------------------
(6)
以下是第(5)的副程式..
/ ●Ch4-3.h● /
struct Node {        
   int data;          
   struct Node *next; 
};
typedef struct Node LNode;   
typedef LNode *List;         
List first = NULL;           
extern void creatList(int len, int *array);
extern int isListEmpty();
extern void printList();
extern List searchNode(int d);
extern int deleteNode(List ptr);
extern void insertNode(List ptr, int d);
------------------------------------------------
/* createDList.c */
void createDList(int len, int *array) {
   int i;
   DList newnode, before;    
   first = (DList) malloc(sizeof(DNode));
   first->data = array[0];   
   first->previous = NULL;   
   before = first;           
   now = first;              
   for ( i = 1; i < len; i   ) {
      newnode = (DList) malloc(sizeof(DNode));
      newnode->data = array[i]; 
      newnode->next = NULL;     
      newnode->previous=before; 
      before->next=newnode;     
      before = newnode;         
   }
}
void printDList() {
   DList current = first;       
   while ( current != NULL ) {  
      if ( current == now )
         printf("#%d#", current->data);
      else 
         printf("[%d]", current->data);
      current = current->next; 
   }
   printf("\n");
}
void nextNode() {
   if ( now->next != NULL )
      now = now->next;          
}
void previousNode() {
   if ( now->previous != NULL )
      now = now->previous;      
}
void resetNode() {  now = first; }
DList readNode() { return now; }
---------------------------------------------------
(7)
#include 
#include 
int hanoiTower(int dishs,int peg1,int peg2,int peg3) {
   if ( dishs == 1)             
     printf("盤子從 %d 移到 %d\n", peg1, peg3);
   else {
     hanoiTower(dishs - 1,peg1,peg3,peg2);
     printf("盤子從 %d 移到 %d\n", peg1, peg3);
     hanoiTower(dishs - 1,peg2,peg1,peg3); 
   }
}
/* 主程式 */
int main() {
   hanoiTower(3,1,2,3);         
   system("PAUSE");
   return 0; 
}
-------------------------------------------------------------
(8)
#include 
#include 
int maze[7][10] = { 
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 0, 1, 0, 1, 0, 0, 0, 0, 1,
        1, 0, 1, 0, 1, 0, 1, 1, 0, 1,
        1, 0, 1, 0, 1, 1, 1, 0, 0, 1,
        1, 0, 1, 0, 0, 0, 0, 0, 1, 1,
        1, 0, 0, 0, 1, 1, 1, 0, 0, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
int findPath(int x,int y) {
   if ( x == 1 && y == 1 ) {      
      maze[x][y] = 2;             
      return 1;
   }
   else if ( maze[x][y] == 0 ) {  
          maze[x][y] = 2;         
          if ( ( findPath(x - 1,y)         
                 findPath(x   1,y)         
                 findPath(x,y - 1)         
                 findPath(x,y   1) ) > 0 ) 
              return 1;
          else {
              maze[x][y] = 0;    
              return 0;
          }
        }
        else return 0;
}
int main() {
   int i,j;
   findPath(5,8);                   
   printf("迷宮路徑圖(從右下角到左上角): \n");
   for ( i = 0; i <= 6; i  ) {      
      for ( j = 0; j <= 9; j  )
         printf("%d ", maze[i][j]); 
      printf("\n");
   }
   printf("\n數字 1: 牆壁\n數字 2: 走過的路徑\n");  
   system("PAUSE");
   return 0; 
}
---------------------------------------------------------------
(9)
/●Ch6-2-1.c●/
#include 
#include  
#include "Ch6-2-1.h"
int isQueueEmpty() {
   if ( front == rear ) return 1;
   else                 return 0;
}
int enqueue(int d) {
   if ( rear >= MAXQUEUE )  
     return 0;
   else {
      queue[  rear] = d;    
      return 1;
   }
}
int dequeue() {
   if ( isQueueEmpty() )   
      return -1;
   else
      return queue[  front];
}
int main() {   
   int data[6] = {1, 2, 3, 4, 5, 6};
   int i;
   printf("存入佇列資料的順序: ");
   for ( i = 0; i < 6; i  ) {
      enqueue(data[i]);
      printf("[%d]", data[i]);
   }
   printf("\n取出佇列資料的順序: ");
   while ( !isQueueEmpty() )  
      printf("[%d]", dequeue()); 
   printf("\n");
   system("PAUSE");
   return 0; 
}
-----------------------------------------------------
以下為(9)的副程式:
/●Ch6-2-1.h●/
#define MAXQUEUE 10          
int queue[MAXQUEUE];         
int front = -1;              
int rear = -1;               
extern int isQueueEmpty(); 
extern int enqueue(int d);
extern int dequeue();
-------------------------------------------------------
(10)
/●Ch6-2-2.c●/
#include 
#include  
#include "Ch6-2-2.h"
int isQueueEmpty() {
   if ( front == NULL ) return 1;
   else                 return 0;
}
void enqueue(int d) {
   LQueue new_node;
   new_node = (LQueue)malloc(sizeof(QNode));
   new_node->data = d;      
   new_node->next = NULL;   
   if ( rear == NULL )     
      front = new_node;     
   else
      rear->next = new_node;
   rear = new_node;         
}
int dequeue() {
   LQueue ptr;
   int temp;
   if ( !isQueueEmpty() ) {   
      if ( front == rear )    
         rear = NULL;         
      ptr = front;            
      front = front->next;    
      temp = ptr->data;       
      free(ptr);              
      return temp;            
   }
   else return -1;            
}    int main() {   
   int input[100], output[100];
   int select = 1;             
   int numOfInput  = 0;       
   int numOfOutput = 0;
   int i, temp;
   printf("鏈結串列的佇列處理......\n");                 
   while ( select != 3 ) {       
      printf("[1]存入 [2]取出 [3]顯示全部內容 ==> ");
      scanf("%d", &select);      
      switch ( select ) {
         case 1:
            printf("請輸入存入值(%d) ==> ", numOfInput);
            scanf("%d", &temp);  
            enqueue(temp); 
            input[numOfInput  ] = temp;
            break;
         case 2: 
            if ( !isQueueEmpty() ) {
               temp = dequeue();
               printf("取出佇列元素: %d\n", temp);
               output[numOfOutput  ] = temp;
            }
            break;
      }
   }
   printf("輸入佇列的元素: ");    
   for ( i = 0; i < numOfInput; i   )
      printf("[%d]", input[i]);
   printf("\n取出佇列的元素: "); 
   for ( i = 0; i < numOfOutput; i   )
      printf("[%d]", output[i]);
   printf("\n剩下佇列的元素: ");  
   while ( !isQueueEmpty() )
      printf("[%d]", dequeue()); 
   printf("\n");
   system("PAUSE");
   return 0; 
}
-----------------------------------------------------------
以下為(10)的副程式:
/●Ch6-2-2.h ●/
struct Node {              
   int data;               
   struct Node *next;    
  };
typedef struct Node QNode; 
typedef QNode *LQueue;     
LQueue front = NULL;       
LQueue rear = NULL;        
extern int isQueueEmpty();
extern void enqueue(int d);
extern int dequeue();
-------------------------------------------------------
請各位大大幫幫忙囉!!...3Q~~
發表人 - pwipwi 於 2004/12/29 17:54:54
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-29 17:58:32 IP:211.76.xxx.xxx 未訂閱
"魚"你好:     因為網頁顯示的原因,程式碼記得要加上縮排的標記,不然看起來會很痛苦的。(這次順手幫你加上原始文章,不然等會又會被刪文囉!)
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-29 22:20:46 IP:211.76.xxx.xxx 未訂閱
既然您已懂得副函式, 那就把這些檔案每個 main() 都取不同的名稱, 例如:按順序在 main 後加上流水號 int main1() int main2() ... 只需另建一個檔例如叫作 testall.c 內容如下:
extern int main1();
extern int main2();
extern int main3();
extern int main4();
extern int main5(); // 看您有多少個就宣告多少個
int main()
{
  main1();
  main2();
  main3();
  main4();
  main5();
}
這樣就可以了。 如果因為每一個程式的輸出都混在一起分不出,則在每一個 mainX(); 之後, 再加上 clrscr(); 清空畫面即可。 日後貼程式碼時記得使用以下的方式: [code] // BCB, Delphi 的程式碼 [/code] 吃軟也吃硬 dllee.ktop.com.tw StatPlus 系統資源監測器 @ KTOP VMASK - ViewMove Automation Software Kernel 發表人 - dllee 於 2004/12/29 22:27:29
------
http://www.ViewMove.com
系統時間:2024-06-28 19:28:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!