[問題] 最後一個問題了

看板C_and_CPP (C/C++)作者 (白飯)時間16年前 (2010/03/22 23:56), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
在一波起一波折後 已經完成了80% 感謝前幾篇大大的開導 但是還是還沒完成Orz 雖然已經做了差不多 還原 題目要求的 不懂請按a 找作者kiki86151 就是把input.txt檔做類似猜數字遊戲 輸出在output.txt檔 第一行是目標數 其餘都是要猜的數字 例如 input.txt內容 8651 1234 5678 1357 2468 作完讀檔應過猜數字後 猜數字規則我相信有些人應該知道吧 就是位置對數字對就A 位置不對數字對就B 所以按照以上的input檔內容 就變成 oput.txt內容 0A1B 1A2B 1A1B 0A2B 我的程式碼 #include<stdio.h> #include<stdlib.h> int main() { int a,b; int e,f; int m[50],n[50],k[50],r[50],line[50]; FILE *inp = fopen ("input.txt", "r"); FILE *outp = fopen ("output.txt", "w"); if(inp != NULL) { e=0,f=0; for(int i=0;i<50;i++ !=EOF) { fscanf(inp,"%d", &line[i]); m[i]=line[i]/1000; //目標數和要猜數的千位數 目標千位 數為m[0] a=line[i]%1000; n[i]=a/100; //目標數和要猜數的百位數 目標百位 數為n[0] b=a%100; k[i]=b/10; //目標數和要猜數的十位數 目標十位 數為k[0] r[i]=b%10; //目標數和要猜數的個位數 目標個位 數為r[0] } for(int i=0; i<50; i++) { if(m[0]==m[i+1]) { e++; } if(n[0]==n[i+1]) { e++; } if(k[0]==k[i+1]) { e++; } if(r[0]==r[i+1]) { e++; } if(m[0]==n[i+1] || m[0]==k[i+1] || m[0]==r[i+1]) { f++; } if(n[0]==k[i+1] || n[0]==r[i+1]) { f++; } if(k[0]==r[i+1]) { f++; } fprintf(outp,"%dA%dB\n" ,e,f); } } fclose (inp); fclose (outp); system("pause"); return 0; } 我已經完成讀檔後 然後把第一行數字各別放在陣列了 就是m[0],n[0],k[0],r[0] 那幾個就是目標數 接著第二行放在m[1],n[1],k[1],r[1] 以類推 然後去比較目標數 輸出output幾A幾B 要怎麼做= = 一直失敗 拜託大大看一下 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.202.58

03/22 23:59, , 1F
49+1=50
03/22 23:59, 1F

03/23 00:22, , 2F
改i=1 然後i+1改成i 開始跑 還是一樣= =
03/23 00:22, 2F
文章代碼(AID): #1BfvCjYZ (C_and_CPP)
文章代碼(AID): #1BfvCjYZ (C_and_CPP)