1樓:匿名使用者
我用檔案寫了一個,你的想法太複雜了
#include
#include
int main()
ch=fgetc(fp);
while(ch!=eof)
last=ch; //最後一個字元
ch=fgetc(fp);
}if(isalpha(last)!=0)n++; //如果最後一個字元是字母
printf("s=%d\n",n);
fclose(fp);
return 0;}
2樓:
沒細看你的**。據題意,覺得你寫複雜了,而且統計了重複單詞。下面提供一個作參考……
//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void main(void)
fflush(stdin);
for(word=i=0;a[i];i++)}printf("%d\n\ndo it again...\n",word);}}
3樓:匿名使用者
你沒看到是不重複的單詞嗎?重點在這裡。
c語言統計單詞個數
4樓:向日葵
q:輸入一串字串,輸出其中有多少個單詞。
eg:good wishes
a:#include #include #define size 20int main()
; int count=0;
printf("plz input the string\n");
gets(str);
puts(str); int length = strlen(str); for (int i=0;i『\0』和『0』的區別:
在c語言中,它們都是字元,都用對應的ascii碼來儲存。例如第一個ascii碼,0,對應字元為(null),就是 『\0』,即空字元。我們在c語言中判斷一個字串是否結束的標誌就是看是否遇到『\0』,如果遇到『\0』,則表示字串結束。
字元『0』和數字0的區別:前者是字元常量,後者是整形常量,但是字元常量可以像整數一樣在程式中參與相關運算。
字串所有字元,如果當前字元不為空,單詞數+1,再巢狀一個while迴圈,判斷當前單詞是否結束。
#include
#include
int count_words(char* s)
{int len=strlen(s);
int count,i;
for(i=0;iif(*(s+i)!=' '){ // 如果當前**不為空
count++; //單詞數+1
while(*(s+i)!=' '&& ii++;
return count;
int main()
char* a="i love you";
printf("%d",count_words(a));
5樓:風若遠去何人留
根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。
不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。
一、演算法設計:
核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。
1、flag初始為1;
2、遍歷字串。
3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。
4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設定flag為1。
5、 遍歷結束後輸出結果。
#include
int main()
}else if(s[i] == ' ')//上一個單詞結束。
flag = 1;
}printf("%d\n", n);//輸出結果。
return 0;}
6樓:匿名使用者
#include
int main(void)
else
word =1 ;
c=getchar();
}if ( word )
count++ ;
/*---------*/
printf("count = %d\n", count);}}
7樓:風雷九州
char c;
int count, word;
int repeat, ri;
scanf("%d", &repeat);
getchar();
for(ri = 1; ri <= repeat; ri++)word = 0;
}else
c = getchar();
}if(word == 1)
printf("count = %d\n", count);
}**見上
8樓:匿名使用者
方案一、用gets(讀入字串,然後逐個字元遍歷該串,並統計出單詞個數。
方案二、用函式getchar()逐個讀入字元,同時判斷單詞個數,直到讀到字元'\n'。
疑問、對於相同的單詞作何處理?
9樓:寒寒家
如果僅僅是統計單詞的個數,那麼可以統計 空格+字母 這種組合出現的次數count(也就是空格的下一個字元是字母)。
對於開頭的單詞,如果前面沒有空格,那麼最終有count+1個字元。
10樓:匿名使用者
#include "stdio.h" main() printf("本行中共有%d個單詞.\n",num); } 其原理很簡單:
對每個字元進行判斷,如果是空格就把變數word標記為0,如果不是空格就判斷word是不是0(即判斷之前有沒有空格),如果存在空格單詞量加1,然後復位word變數為0。就這樣重複,知道句子結束
11樓:李楠焱
#include
main()
char s[81];
int i,num=0;
printf("請輸入一行英文:\n");
gets(s);
if(s[0]!=' ')
num++;
for(i=1;s[i];i++)
if(s[i-1]==' '&&(s[i]<='z'&&s[i]>='a'||s[i]<='z'&&s[i]>='a'))
num++;
printf("本行中共有%d個單詞.\n",num);
這個是比較簡單的寫法。
12樓:
#include
#include
#include
int main()
str[strlen(str)-1] = '\0';
for(i = 0;i return 0;} 13樓:李卓霖首席男友 相當於空格,可以看一下這個程式(用於統計單詞個數)#include void main() printf(" 該英文句子由%d個單片語成。 .\n",num); }有時為了給變數附一個無意義的初值通常用這個。呵呵 14樓:鹿溪生 最佳答案還是有些不全面的 在最後有空格的時候會有誤這個更全面 #include void main() n=i; for(i=0;i<=n;i++) }else if(a[i]==' ') k=1; }printf("%d\n",m);} c語言統計單詞個數,單詞個數演算法 15樓: 當字元從' '變為字母時或其他字元時word從0變為1,而word從0變為1時就是一個單詞,所以count+1;當字元由非' '變為' '時word從1變為0,準備判斷下一個單詞的出現,即等待字元由' '變為其他字元的出現。這樣最後count就是記錄了單詞的個數,其實就是記錄了字元由' '變為其他字元的次數! c語言中統計單詞個數的問題 16樓:李卓霖首席男友 相當bai於空格,可以看一下這個程du 序(用zhi於統計單詞個dao數) #include void main() printf(" 該英文句子由%d個單片語成。 .\n",num); }有時為了給變數附一個無意義的初值通常用這個。呵呵 17樓:匿名使用者 給字元變數c2賦值為空格 18樓:匿名使用者 你說得對,就是相當於'\0'。 c語言統計單詞個數問題! 19樓:武荊軻 #include "stdio.h" main() printf("本行中共有%d個單詞.\n",num); }其原理很簡單: 對每個字元進行判斷,如果是空格就把變數word標記為0,如果不是空格就判斷word是不是0(即判斷之前有沒有空格),如果存在空格單詞量加1,然後復位word變數為0。就這樣重複,知道句子結束 20樓:匿名使用者 根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。 不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。 一、演算法設計: 核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。 1、flag初始為1; 2、遍歷字串。 3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。 4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設定flag為1。 5、 遍歷結束後輸出結果。 二、參考**: #include int func(char *s)//計算單詞數函式 }else if(s[i] == ' ')//上一個單詞結束。 flag = 1; }return n;//返回結果。 }int main() 21樓: #include #include main() printf("c=%d\n",c);} 22樓:痞孓寶 請問,這樣可不可以實現功能 #include "stdio.h" main() 說祺阿雅唱 include stdio.h main printf d n num 史朝東樂安 include include intmain printf 單詞個數為 d n number return0 include include int main while a i a a i a a i... 簡單的寫了一下 希望採納。include int main else if min 0 printf d 2lf min,summin min elseprintf 0 if max 0 printf d 2lf max,summ max elseprintf 0 return 0 c語言 prob... 12一 include void main 1.include include include int main else while fabs 1.0 i 0.0001 fabs 求浮點數絕對值函式 return 0 2.include include int main else return 0...c語言統計單詞個數,C語言統計單詞個數問題!
C語言 簡單的數值統計,C語言問題 簡單統計
c語言程式設計計算 ,C語言程式設計計算 1 1 2 1 3 1 4 1 99 1 100 ,直到最後一項的絕對值小於10 4為止