#include <stdio.h>
int main() {
int i,pay;
i=1;
double tax;
FILE *fp1,*fp2;
fp1=fopen("salary.txt","r");
fp2=fopen("taxes.txt","w");
fscanf(fp1,"%d",&pay);
while(!feof(fp1))
{
fscanf(fp1,"%d",&pay);
if(pay<800)
tax=0;
else if(pay<2000)
tax=(pay-800)*0.1;
else if(pay<5000)
tax=1200*0.1+(pay-2000)*0.15;
else if(pay<20000)
tax=1200*0.1+3000*0.15+(pay-5000)*0.2;
fprintf(fp2,"該人今年第%d個月的所得稅為:%lf\n",i,tax);
i++;
if(i>12) break;
}
fclose(fp1);
fclose(fp2);
return 0;
}
請問一下這個有什么問題
salary.txt檔案里面是
15000 18000 9000 12000 4500 3500 7800 9200 780 980 6500 7000
程式運行后taxes.txt檔案里面顯示的是
該人今年第1個月的所得稅為:0.000000
該人今年第2個月的所得稅為:0.000000
該人今年第3個月的所得稅為:0.000000
該人今年第4個月的所得稅為:0.000000
該人今年第5個月的所得稅為:0.000000
該人今年第6個月的所得稅為:0.000000
該人今年第7個月的所得稅為:0.000000
該人今年第8個月的所得稅為:0.000000
該人今年第9個月的所得稅為:0.000000
該人今年第10個月的所得稅為:0.000000
該人今年第11個月的所得稅為:0.000000
該人今年第12個月的所得稅為:0.000000
為什么是0啊
uj5u.com熱心網友回復:
你在回圈中列印一下pay的值看看,是不是都能正確讀出pay的值?uj5u.com熱心網友回復:
我改了一下,是這個
int i,pay;
i=1;
double tax;
FILE *fp1,*fp2;
fp1=fopen("salary.txt","r");
fp2=fopen("taxes.txt","w");
while(!feof(fp1))
{
fscanf(fp1,"%d",&pay);
if(pay<800)
tax=0;
else if(pay<2000)
tax=(pay-800)*0.1;
else if(pay<5000)
tax=1200*0.1+(pay-2000)*0.15;
else if(pay<20000)
tax=1200*0.1+3000*0.15+(pay-5000)*0.2;
fprintf(fp2,"該人今年第%d個月的所得稅為:%lf\n",i,tax);
i++;
if(i>12) break;
}
fclose(fp1);
fclose(fp2);
而且兩個檔案也在同一個檔案夾里,但還是0.0000
uj5u.com熱心網友回復:

在devc++上跑你的代碼結果如上
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/86012.html
標籤:C語言
上一篇:C++中類的成員函式的執行順序
下一篇:誰幫我解釋一下這個段代碼做什么
