關於C語言檔案輸入輸出的程式問題高分懸賞

時間 2021-05-04 18:25:42

1樓:匿名使用者

第一個問題:

這程式有兩個問題:

1. 讀入的格式與txt檔案不符。你的txt是用空格來分隔數字的,而程式卻用逗號。

2. 讀入的行數沒有記錄,導致p和c兩個陣列中,大量空元素也被輸出。

程式可以這樣改:

#include "stdio.h"

#include

void main()

fclose(in);/*關閉原始檔*/

for(i=0;i

printf("%f,%f\n",p[i],c[i]);

double a=1.5679,m=1.54543,b=1.08490,n=1.48491,rw=0.034;

for (i=0;i

p[i]=pow((double)(a*b*rw)/(p[i]*pow((double)c[i],(double)m)),1/n);

out=fopen(outfile,"w"); /*處理完成,開始輸出到outfile檔案*/

for (i=0; i

fprintf(out,"%f\n",p[i]);

fclose(out);

} else printf("can not open infile\n");

} 第二個問題:

如果只想要一列,不把東西寫入陣列c就行:

// 兩個%f,但是隻儲存第一個,第二個遺棄

double no_use;

輸出時候:

fprintf(out,"%f\n",p[i]);

2樓:我是小超子

/*程式被我修改為如下,不知道是否滿足你的要求,滿足的話就給分吧哈哈*/

#include

#include

void main()

fclose(in);/*關閉原始檔*/

for(i=0;i

printf("%f,%f\n",p[i],c[i]);

double a=1.5679,m=1.54543,b=1.08490,n=1.48491,rw=0.034;

for (i=0;i

p[i]=pow((a*b*rw)/(p[i]*pow(c[i],m)),1/n); //這裡的可讀性很差

out=fopen(outfile,"w"); /*處理完成,開始輸出到outfile檔案*/

for (i=0; i

fprintf(out,"%f\n",p[i]);

fclose(out);

} else printf("can not open infile\n");

} /*修改後的程式得到的檔案中的資料如下*/

/* 0.162931

0.321832

0.699797

0.338431

0.706858

0.573628

0.499056

0.558954

0.175229

0.313424

0.213568

0.144576

*/ /*你的第二個問題我看了半天不明白什麼意思,所以請原諒*/

//還有你的程式可讀性很差,這次錯的原因也是寫的太亂,勸告你還是先一步

//一個腳印的好,最好請給分吧哈哈。

//樓主看得出來我是最用心回答的吧哈哈

求一個用c語言編寫的程式!!!要解決實際的問題!!!!!

c語言輸入輸出格式,C語言輸入輸出格式

寫在楓葉上的故事 在c語言中,輸入使用的是scanf函式,scanf函式的格式為scanf 格式控制,地址列表 如scanf d a 輸出使用的是printf 函式,printf函式的格式為printf 格式控制,輸出表列 如printf d n a 在輸出時可以在 和字母之間插進數字表示最大場寬。...

輕鬆c語言用函式輸入輸出,輕鬆C語言用函式輸入輸出

碧海風雲 有反應啊 首先輸入5個字元,隨後會輸出方才輸入的字元。include int main for i 0 i 5 i putchar n return 0 執行結果 輸入 abcde 輸出 abcde c語言中的輸入輸出函式總結 c語言中資料輸入輸出的概念及在c語言中的實現 1 所謂輸入輸出...

C語言中如何實現多組資料輸入輸出

你先要設定陣列的大小,這個你必須要定義的。你要不確定你要多少你最好把你的數值設定大些。至於你要輸多個你可以用迴圈語句如 for i 1 i n i scanf d a n 輸出還是一樣之是把scanf改成printf不要取地址就行了。希望能對你有幫助。就用輸入輸出函式就可以啊。c語言中有一個。標準輸...