我試圖找到詞頻率,我無法弄清楚爲什麼程序不斷崩潰..我已經嘗試了很多方法,但我仍然得到同樣的崩潰。難道我做錯了什麼? *輸入是我要創建的書籍文件和新文件。程序不會運行 - 書計算器的字母頻率
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fp,*fp2;
int ch, total, counter, totalcounter, i;
int letters[25], letterfrequency[25];
for(i=0; i<25; i++)
{
letters[i] = 0;
letterfrequency[i] = 0;
}
printf("Opening: %s", argv[1]);
fp = fopen(argv[1], "r");
if (!fp)
{
perror("fopen");
exit(1);
}
while((ch=fgetc(fp)) != EOF)
{
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
counter = toupper(ch);
ch = counter - 65;
letters[ch]++;
totalcounter++;
}
}
fp2 = fopen(argv[2], "w");
for(i=0;i<25;i++)
{
fprintf(fp2, "%c: Times used: %s\tFrequency Used: %s", i+65, letters[i], letters[i]/totalcounter);
}
fclose(fp);
fclose(fp2);
return 0;
}
您的代碼有很多警告。一定要用'-Wall'編譯。修復警告。然後重新發布代碼,如果它仍然無法正常工作。 – Schwern
你最近如何運作?什麼是預期的輸出? – bentank
您可以添加「ch」值的打印,它可以幫助識別問題 – lowtech