//清华2001:题目1065:输出梯形 //输入一个高度h,输出一个高为h,上底边为h的梯形。 //题目没说是多组数据啊 该死 WA*n... //#include <fstream> #include <iostream> using namespace std; int main() { int i, j, k, h, bottom; while( cin >> h ){ bottom = h + 2*(h-1); //bottom为底边*的个数 //ofstream out("THU_1065_output.cpp"); for( i=0; i<h; i++ ){ for( j=0; j<bottom-h-2*i; j++ ) cout << " "; for( k=0; k<h+2*i; k++ ){ cout << "*"; if( k==h-1+2*i ) cout << endl; } } } return 0; }
//清华2001:题目1066:字符串排序 //输入一个长度不超过20的字符串(输入样例可能有多组) //对所输入的字符串 按照ASCII码的大小从小到大进行排序,请输出排序后的结果 #include <iostream> #include <algorithm> #include <string> #include <cstring> #include <cstdio> using namespace std; struct LETTER{ char a; int b; }; LETTER l[20]; bool cmp( LETTER x, LETTER y ){ return x.b < y.b; }; int main() { int i, j, k, n, length; char s[20]; while ( scanf("%s",s)!=EOF ){ length = strlen(s); for( i=0; i<length; i++ ){ l[i].a = s[i]; l[i].b = l[i].a; } sort( l, l+length, cmp ); for( i=0; i<length; i++ ){ printf("%c",l[i].a); } printf("\n"); } return 0; }
以上是C风格 以下是C++风格
//清华2001:题目1066:字符串排序 //输入一个长度不超过20的字符串(输入样例可能有多组) //对所输入的字符串 按照ASCII码的大小从小到大进行排序,请输出排序后的结果 #include <algorithm> #include <iostream> #include <string> using namespace std; struct LETTER{ char a; int b; }; LETTER l[20]; bool cmp( LETTER x, LETTER y ){ return x.b < y.b; }; int main() { int i, j, k, n, length; string s; while( cin >> s ){ length = s.length(); for( i=0; i<length; i++ ){ l[i].a = s[i]; l[i].b = l[i].a; } sort( l, l+length, cmp ); for( i=0; i<length; i++ ) cout << l[i].a; cout << endl; } return 0; }
//清华2001:题目1067:n的阶乘 //输入一个整数n,输出n的阶乘 (1<=n<=20) #include <iostream> using namespace std; #define INT long long int main() { int i, j, k, n; INT r; //r=result while( cin >> n ){ r = 1; for( i=2; i<=n; i++ ) r *= i; cout << r << endl; } return 0; }