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語言中有一個。標準輸...