关键是要排序,如AABBBBC,然后可比较,当相同时将当前位置向后移,而不增加统计数目,不同时增加统计数目,再退出第二循环,这样就可以统计了。
1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 int main()
6 {
7 int n,m,i,j;
8 char **a;
9 cin>>n;
10 if(n<1||n>1000)
11 cin>>n;
12 else{
13 a=new char*[n];
14 for(i=0;i<n;i++){
15 a[i]=new char[20];
16 cin>>a[i];
17 strupr(a[i]);
18 }
19 for(i=0;i<n-1;i++)
20 for(j=0;j<n-i-1;j++)
21 if(strcmp(a[j],a[j+1])>0)
22 swap(a[j],a[j+1]);
23 m=1;
24 for(i=0;i<n;i++)
25 for(j=i+1;j<n;j++)
26 if(strcmp(a[i],a[j])!=0){
27 m++;
28 break;
29 }
30 else
31 i++;
32 }
33
34 cout<<endl<<m<<endl;
35 for(i=0;i<n;i++)
36 delete []a[i];
37 delete[] a;
38 return 0;
39
40 }
View
Code
时间: 2024-08-10 00:00:13