台灣最大程式設計社群網站
線上人數
684
 
會員總數:245627
討論主題:189322
歡迎您免費加入會員
討論區列表 >> C/C++ >> 小弟剛接觸這塊不太了解麻煩各位大大了可以幫幫忙嗎?沒頭緒
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
小弟剛接觸這塊不太了解麻煩各位大大了可以幫幫忙嗎?沒頭緒
價值 : 5 QP  點閱數:411 回應數:10
樓主

何定唐
門外漢
0 1
16 5
發送站內信

附件有一個score.txt檔案,內容為學生的英文成績-
試讀取成績之後算出全班總平均分數於螢幕顯示。
依照成績由高至低排序,在螢幕列出並輸出結果到result.txt檔案。

搜尋相關Tags的文章: [ 檔案讀取及寫入 ] ,
本篇文章發表於2019-06-17 14:23
1樓
回應

P陳
檢舉此回應
1.先將動作分出來,分成數個動作。
2.我們再一個動作一個動作來處理。
3.目前的訊息我們不知您卡在那堙C
本篇文章回覆於2019-06-17 17:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

何定唐
檢舉此回應
#include <stdio.h>

main()
{
FILE *test=fopen("score.txt","r");
struct data
{
char name[30];
int Ft;
}add;

if(test!=NULL)
{
while (!feof(test))
{
fgets(add.name,30,(FILE*)test);
printf("%s",add.name );
}
}
else
printf("error");
fclose(test);

}
本篇文章回覆於2019-06-17 17:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

何定唐
檢舉此回應
寫起來還是有些奇怪
本篇文章回覆於2019-06-17 17:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

何定唐
檢舉此回應
#include <stdio.h>

main()
{
char c;
FILE *test=fopen("score.txt","r");
struct data
{
char name[30];
int Ft;
}add;

if(test!=NULL)
{
/*while (!feof(test))
{
fgets(add.name,30,(FILE*)test);
printf("%s",add.name );
}*/
while(!feof(test))
{
c = fgetc(test);
printf("%c", c);
}
}
else
printf("error");
fclose(test);
本篇文章回覆於2019-06-17 17:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
你的txt內容呢?
本篇文章回覆於2019-06-17 18:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

何定唐
檢舉此回應
Ares,96
Mary,67
Kent,88
Jone,91
Harry,76
Joseph,87
本篇文章回覆於2019-06-18 07:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

dsfsdf
檢舉此回應
意外的不容易寫欸...
存檔部分就交給你了

<pre lang="c">
#include<stdio.h>
#include<string.h>

int main()
{
int count = 0;
struct data
{
char name[30];
int Ft;
}add[100];

/*讀檔案資料*/
char str[30];
char *token,*next_token;
FILE *test;
fopen_s(&test, "score.txt", "r");
if (test != NULL)
{
while (!feof(test))
{
fgets(str, 30, (FILE*)test);
token = strtok_s(str, ",", &next_token); //token切割字串
strcpy_s(add[count].name,strlen(token)+1, token);
add[count].Ft =atoi(next_token);
count++;
}
}
else
printf("error");
fclose(test);

/*計算平均*/
int total = 0;
for (int i = 0; i < count; i++)
{
total += add[i].Ft;
}
printf("平均:%d\r\n\r\n", total / count);


/*泡沫排序*/
int temp_i;
char temp_c[30];
for (int i = 0; i < count; i++) {
for (int j = i; j < count; j++) {
if (add[j].Ft > add[i].Ft) {
temp_i = add[j].Ft;
add[j].Ft = add[i].Ft;
add[i].Ft = temp_i;

strcpy_s(temp_c, strlen(add[j].name) + 1, add[j].name);
strcpy_s(add[j].name, strlen(add[i].name) + 1, add[i].name);
strcpy_s(add[i].name, strlen(temp_c) + 1, temp_c);
}
}
}
for (int i = 0; i < count; i++) {
printf("%s %d\r\n", add[i].name, add[i].Ft);
}

/*儲存檔案*/

return 0;
}
</pre>
本篇文章回覆於2019-06-18 15:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

dsfsdf
檢舉此回應
沒排到版

本篇文章回覆於2019-06-18 15:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

何定唐
檢舉此回應
這是不是還要定義一下error
本篇文章回覆於2019-06-18 18:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小魚
檢舉此回應
如果用C++會好寫很多,
C++ 11會更好寫.
本篇文章回覆於2019-06-18 19:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.