2012-07-18 233 views
1

我已經編寫了下面的程序,它在從IDE運行時運行良好。但是,當我想通過從inp.txt文件輸入並輸出到out.txt文件來測試它時,它不會這樣做。爲什麼我的代碼不輸出到文本文件


#include <stdio.h> 
#include <stdlib.h> 

struct node 
{ 
    int data; 
    struct node *next; 
}*start; 

void insertatend(int d) 
{ 
    struct node *n; 
    n=(struct node *)malloc(sizeof(struct node)); 
    n->data=d; 
    n->next=NULL; 

    if(start==NULL) 
    { 
    start=n; 
    } 

    else 
    { 
    struct node *tmp; 
    for(tmp=start;tmp->next!=NULL;tmp=tmp->next); 
    tmp->next=n; 
    } 
} 

int max(int a,int b) 
{ 
    int c=(a>b)?a:b; 
    return c; 
} 

int maxCoins(int n) 
{ 
    int arr[n+1],i; 
    arr[0]=0; 
    arr[1]=1; 
    arr[2]=2; 
    arr[3]=3; 

    if(n>2) 
    { 


    for(i=3;i<=n;i++) 
    { 
     int k= arr[(int)(i/2)]+arr[(int)(i/3)]+arr[(int)(i/4)]; 
     arr[i]=max(i,k); 
    } 
    } 

    return arr[n]; 
} 

int main(void) 
{ 
    int coins,i; 
    start=NULL; 
    struct node*p; 

    while(scanf("%d",&coins)>0) 
    { 
    insertatend(coins); 
    } 

    for(p=start;p!=NULL;p=p->next) 
    { 
    printf("%d\n",maxCoins(p->data)); 
    } 

    getchar(); 

    return 0; 
} 

我試着做我的命令提示符下ByteTest.exe<inp.txt>out.txt以下,但不更改out.txt文件進行。

我通過輸入CTRL+Z終止輸入到我的程序。這與這有什麼關係?


inp.txt and out.txt可以,例如含有


inp.txt  out.txt 

12    13 
24    27 
26    27 
+1

你爲什麼期望你的程序輸出到一個文件?您的程序中沒有使用任何文件訪問/寫入功能?你是否期望它能像shell命令行'ls -a> file_list.txt'那樣通過管道輸出工作? – mathematician1975 2012-07-18 20:48:01

+0

是的。我正在嘗試這樣的事情 – OneMoreError 2012-07-18 20:51:50

+0

我沒有看到你如何做事情的任何問題。 – pb2q 2012-07-18 20:56:07

回答

2

你的問題可能是:

while(scanf("%d",&coins)>0) 

這將返回字符的數量。您不在此處檢查硬幣的值,而是檢查輸入字符串的長度。

相關問題