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);
}
}
}
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:不是%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好像是直接停掉