1 #include <iostream> 2 #include <string> 3 #include <string.h> 4 using namespace std; 5 6 string str[1000]; 7 8 int main() 9 { 10 int a[1000]; 11 int n,i,j,max; 12 while (cin>>n,n) 13 { 14 memset(a,0,sizeof(a)); 15 for (i=0;i<n;i++) 16 { 17 cin>>str[i]; 18 for (j=0;j<i;j++) 19 { 20 if (str[i]==str[j]) 21 { 22 a[j]++; 23 break; 24 } 25 } 26 if (i==j) a[i]++; 27 } 28 max=0; 29 for (i=0;i<n;i++) 30 if (a[i]>a[max]) max=i; 31 cout<<str[max]<<endl; 32 } 33 return 0; 34 }
hdoj1004
1.借着这个题补了一下string的用法……
http://www.cnblogs.com/travelller/p/4662441.html
2.while(cin>>n)如果你声明的n是int型,那么当你输入一个非数字字符时就会终止
while(cin>>n,n) 如果你声明的n是int型,那么当你输入一个非零数字时就会终止
3.上面第二个表达式是逗号表达式
逗号表达式的语法为: 表达式1,表达式2,...表达式n C++顺序计算表达式1,表达式2,……,表达式n的值。例如: int a,b,c; a=l,b=a+2, c=b+3; 由于按顺序求值, 所以能够保证b一定在a赋值之后, c一定在b赋值之后。该逗号表 达式可以用下面3个有序的赋值语句来表示: a=1; b=a+2; c=b+3; 逗号表达式是有值的,这一点是语句所不能代替的。逗号表达式的值为第n个子表达 式的值,即表达式n的值。例如: int a,b,c,d; d=(a=1,b=a+2,c=b+3); cout<<d<<endl; 输出结果为: 6 上例中输出的结果d即为c的值。 逗号表达式还可以用于函数调用中的参数。例如: func(n,(j=1,j+4),k); 该函数调用有3个参数,中间的参数是一个逗号表达式。括号是必须的,否则,该函数有4个参数了。逗号表达式作为值的形式,可以用于几乎所有的地方。 C++中,如果逗号表达式的最后一个表达式为左值,则该逗号表达式为左值。例如: (a=1,b,c+1,d)=5; //ok:即d=5 ->在C中,逗号表达式是不能作左值的,所以 “(a=1,b,c+1,d)=5;”将通不过编译
时间: 2024-08-24 18:58:10