名望的騎士
#include #include #define M 10 typedef struct lp { float x; int num; struct lp *next; }LP; int main(void) { LP *Z,*lim[M],*p; int v,i,j,n,k,count=1; float val[M]; p=Z; printf("請輸入最大值函數的變數數目(此後,會將變數名稱依序編號為x1,x2,...): "); scanf("%d",&v); for(i=1;i<=v;i++) { p->next=(LP *)malloc(sizeof(LP)); p=p->next; } p->next=NULL; p=Z->next; for(i=1;i<=v;i++) { printf("請輸入x%d變數的係數: ",i); scanf("%f",&p->x); p->num=i; p=p->next; } printf("請輸入限制式的數目(最多%d個): ",M); scanf("%d",&n); for(i=0;i<N;I++) { p=lim; printf("請輸入第%d個限制式的變數數目: ",i+1); scanf("%d",&k); for(j=1;j<=k;j++) { p->next=(LP *)malloc(sizeof(LP)); <---問題癥結點 p=p->next; } p->next=NULL; p=lim->next; while(j<=k&&count<=n) { printf("請輸入此限制式x%d變數的係數(若無,請輸入數字0): ",count); scanf("%f",&p->x); if(p->x!=0.0f) { p->num=count; p=p->next; count++; } } printf("請輸入此限制式的最大值: "); scanf("%f",&val); } p=Z->next; printf("你所輸入的最大值函數為Z="); while(p!=NULL) { printf("%f*x%d",p->x,p->num); if(p->next!=NULL) printf("+"); p=p->next; } printf("\n\n"); printf("限制式為\n"); for(i=0;i<N;I++) { p=lim->next; while(p!=NULL) { printf("%f*x%d",p->x,p->num); if(p->next!=NULL) printf("+"); p=p->next; } printf("≦%f",val); printf("\n"); } system("PAUSE"); return 0; }
我來回答
bug.rar
08-5-15 18:35 上傳
點選檔案名稱下載附件
781 Bytes, 下載次數: 85, 下載積分: 鐵幣 -5 元
回覆 使用道具 檢舉
名望的居民
原文由 PoorCat0919 於 08-5-15 07:04 PM 發表 [原文] 這個程式有不少的問題存在 我想你在貼文時可能是用從新鍵入的方式 有些變數的名稱跑掉而了 問題主要出在於你只定義了一個指標的容器,而沒有給予實體的記憶體 for(i=1;inext=(LP *)malloc(sizeof(LP)); p=p->next; } ...
發表回覆 回覆並轉播 回覆後切換到最後一頁
存檔|手機版|聯絡我們|新聞提供|鐵之狂傲
GMT+8, 25-1-14 21:38 , Processed in 0.022174 second(s), 17 queries , Gzip On.