#16670: 求救


andy406031211@gmail.com (meow)

學校 : 不指定學校
編號 : 90635
來源 : [114.35.252.154]
最後登入時間 :
2020-01-10 20:56:52
d492. 10226 - Hardwood species -- UVa10226 | From: [114.35.252.154] | 發表日期 : 2019-01-28 18:00

Q1:total 一直跑錯
Q2:不是%s跑不出來就是%.4f跑不出來
Q3:有沒有辦法IDE跑EOF(我目前只能一次一次的丟丟看)

麻煩各位大大

 

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

int main ()
{
int i=0,j=0,k,min;
char tree[10000][31];
char test[31];
float trital[10000][1]={0.0};
float total;
int fig;
scanf("%d",&fig);

while(fig--)
{
total =0.0;
while(scanf("%c",&tree[i][j])!=EOF) // check sentence of tree named
{
if(tree[i][j] != '\n')
{
j++;
}
else
{
for(j=0;j<i;j++)
{
if(strcmp(tree[i],tree[j])==0)
{
i--;
trital[j][0] += 1.0;
break;
}
}
i++;
j=0;
}
}

for(j=i-1;j>-1;j--)
{
for(k=0;k<j;k++)
{
if(strcmp(tree[k],tree[k+1])>0)
{
min = trital[k][0];
strcpy(test,tree[k]);
trital[k][0] = trital[k+1][0];
strcpy(tree[k],tree[k+1]);
trital[k+1][0] = min;
strcpy(tree[k+1],test);
}
}
}

for(j=0;j<i;j++)
{
total += trital[j][0]*1.0;
}

for(j=0;j<i;j++)
{
float num = trital[j][0] / total;
num *= 100;

printf("%s ",tree[j]);
printf("%.4f\n",num);
}
}


}

 
#16672: Re:求救


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
d492. 10226 - Hardwood species -- UVa10226 | From: [49.158.83.43] | 發表日期 : 2019-01-28 21:19

Q1:total 一直跑錯
Q2:不是%s跑不出來就是%.4f跑不出來
Q3:有沒有辦法IDE跑EOF(我目前只能一次一次的丟丟看)

麻煩各位大大

 

#include
#include
#include

int main ()
{
int i=0,j=0,k,min;
char tree[10000][31];
char test[31];
float trital[10000][1]={0.0};
float total;
int fig;
scanf("%d",&fig);

while(fig--)
{
total =0.0;
while(scanf("%c",&tree[i][j])!=EOF) // check sentence of tree named
{
if(tree[i][j] != '\n')
{
j++;
}
else
{
for(j=0;j<i;j++)
{
if(strcmp(tree[i],tree[j])==0)
{
i--;
trital[j][0] += 1.0;
break;
}
}
i++;
j=0;
}
}

for(j=i-1;j>-1;j--)
{
for(k=0;k<j;k++)
{
if(strcmp(tree[k],tree[k+1])>0)
{
min = trital[k][0];
strcpy(test,tree[k]);
trital[k][0] = trital[k+1][0];
strcpy(tree[k],tree[k+1]);
trital[k+1][0] = min;
strcpy(tree[k+1],test);
}
}
}

for(j=0;j<i;j++)
{
total += trital[j][0]*1.0;
}

for(j=0;j<i;j++)
{
float num = trital[j][0] / total;
num *= 100;

printf("%s ",tree[j]);
printf("%.4f\n",num);
}
}


}

Q1:請問 total 跑錯是指,程式跑一跑會停止,還是是指結果是錯的呢?

 

Q2: c 的字串是用 \0 作為結尾。再加上您的程式前面的輸入是用 %c 輸入,可能造成要輸出的字串找不到 \0 的字元,造成程式死當。

 

Q3:想要模擬 EOF,若是使用 windows 的話,請按組合鍵「Ctrl + z」。會跑出一個特殊的東西叫「^Z」,可以充當 EOF 的功用。若是其他作業系統的話,可能需要到網路上查詢一下。

 

以上,希望本人有幫到您的忙。

 

 
#16673: Re:求救


andy406031211@gmail.com (meow)

學校 : 不指定學校
編號 : 90635
來源 : [114.35.252.154]
最後登入時間 :
2020-01-10 20:56:52
d492. 10226 - Hardwood species -- UVa10226 | From: [114.35.252.154] | 發表日期 : 2019-01-28 22:06

Q1:total 一直跑錯
Q2:不是%s跑不出來就是%.4f跑不出來
Q3:有沒有辦法IDE跑EOF(我目前只能一次一次的丟丟看)

麻煩各位大大

 

#include
#include
#include

int main ()
{
int i=0,j=0,k,min;
char tree[10000][31];
char test[31];
float trital[10000][1]={0.0};
float total;
int fig;
scanf("%d",&fig);

while(fig--)
{
total =0.0;
while(scanf("%c",&tree[i][j])!=EOF) // check sentence of tree named
{
if(tree[i][j] != '\n')
{
j++;
}
else
{
for(j=0;j<i;j++)
{
if(strcmp(tree[i],tree[j])==0)
{
i--;
trital[j][0] += 1.0;
break;
}
}
i++;
j=0;
}
}

for(j=i-1;j>-1;j--)
{
for(k=0;k<j;k++)
{
if(strcmp(tree[k],tree[k+1])>0)
{
min = trital[k][0];
strcpy(test,tree[k]);
trital[k][0] = trital[k+1][0];
strcpy(tree[k],tree[k+1]);
trital[k+1][0] = min;
strcpy(tree[k+1],test);
}
}
}

for(j=0;j<i;j++)
{
total += trital[j][0]*1.0;
}

for(j=0;j<i;j++)
{
float num = trital[j][0] / total;
num *= 100;

printf("%s ",tree[j]);
printf("%.4f\n",num);
}
}


}

Q1:請問 total 跑錯是指,程式跑一跑會停止,還是是指結果是錯的呢?

 

Q2: c 的字串是用 \0 作為結尾。再加上您的程式前面的輸入是用 %c 輸入,可能造成要輸出的字串找不到 \0 的字元,造成程式死當。

 

Q3:想要模擬 EOF,若是使用 windows 的話,請按組合鍵「Ctrl + z」。會跑出一個特殊的東西叫「^Z」,可以充當 EOF 的功用。若是其他作業系統的話,可能需要到網路上查詢一下。

 

以上,希望本人有幫到您的忙。

 

Q1:total 跑的值是錯誤的
Q2:這我了解了(我修修看
Q3:我試過了(但我要EOF完跑的東西不會跑
ctrl+z好像是直接停掉

 
ZeroJudge Forum