[問題] 最後一個問題了
在一波起一波折後
已經完成了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
03/22 23:59, 1F
→
03/23 00:22, , 2F
03/23 00:22, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章