25、用筛法求1-1000之内的素数 #include
int i,k,a[1001];
for(i=2; i<=1000; i++) a[i]=1; double s=sqrt(1000); for(i=2; i<=s; i++) if(a[i]==1)
for(k=i*i; k<=1000; k+=i) a[k]=0; for(i=2; i<=1000; i++)
if(a[i]==1) cout< 26、判断某一年是否闰年的函数 bool IsLeapYear(int y) { return (y%4 == 0 && y0 != 0)||(y@0 == 0); } 27、写一个函数,交换两个整型变量的值 void swap(int *p, int *q) { int t; t=*p; *p=*q; *q=t; } void swap(int &a, int &b) { int t; t=a; a=b; b=t; } 28、求两个数的最大公约数,欧几里德算法(辗转相除法) int gcd(int m, int n) { int k; while(n!=0) { k=m%n; m=n; n=k; } return m; } int gcd(int m, int n) { int k; while((k=m%n)!=0) { m=n; n=k; } return n; 5 } int gcd(int m, int n) { while(m!=n) { if(m>n) m=m-n; else n=n-m; } return m; } 29、求两个数的最小公倍数 int lcm(int m, int n) { int t,s; if(m while(s%n != 0) s=s+m; } int lcm(int m, int n) { return m*n/gcd(m,n); } 30、百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何? int main() { int cock,hen,chick; for(cock=0; cock<=20; cock++) for(hen=0; hen<=33; hen++) { chick=100-cock-hen; if(5*cock+3*hen+chick/3.0==100) cout< 31、编一程序,输入一行字符串,统计其中的小写英文字母的个数。 int main() { char s[100]; cin.getline(s,100); int i=0,count=0; while(s[i]!='\\0') { if(s[i]>='a' && s[i]<='z') count++; i++; } cout< 32、编一程序,输入一行字符串,将其中的大写英文字母改为小写,再输出。 int main() { char s[100]; int i; cin.getline(s,100); i=0; while(s[i]!='\\0') { if(s[i]>='A' && s[i]<='Z') s[i]=s[i]+32; i++; } cout< 33、打印杨辉三角形(帕斯卡三角形),打印10行。 #include { int a[10][10]={0}; for(int i=0; i<10; i++) { a[i][0]=1; a[i][i]=1; } for(int i=1; i<10; i++) for(int j=1; j a[i][j] = a[i-1][j-1] + a[i-1][j]; for(int i=0; i<10; i++) { for(int j=0; j<=i; j++) cout< 34、打印一个九九乘法表 #include { for(int j=1; j<=9; j++) { for(int i=1; i<=j; i++) 6 cout< cout< 35、掷骰子10000次,统计得到各点数的次数。 int main() { int a[7]={0}; srand(time(0)); for(int i=1; i <= 10000 ; ++i) ++a[ 1 + rand()%6 ]; for(int i=1; i <= 6 ; ++i) cout< double distance(double x1, double y1, double x2, double y2) { return sqrt( (x1-x2)*(x1-x2) + (y1-y2) * (y1-y2) ); } 37、写一个程序,进行体操评分,依次输入10名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分。 int main() { int i; float max,min,s,x; max = 0; min = 10; s=0; for(i=1;i<=10;i++) { cin >> x; s = s + x; if(x s = s - min - max; cout << s/8; } 38、写一函数,将一数组中的元素反转。 void reverse(int a[], int n) { for(int i=0; i 39、写一函数,在一个数组中找出最大元素的位置 int SearchMax(int a[], int n) { int k = 0; for(int i=1; i 40、找出一个二维数组中的鞍点,即该元素在该行 return p; } 44、写一个求字符串长度函数 int strlen(char *str) { int n=0; while(*str!='\\0') { n++; str++; } 上最大,在该列上最小。 41、写一个字符串拷贝函数 void strcpy(char *p, const char *q) { while(*p++=*q++); } char *strcpy(char *str1, const char *str2) { char *p=str1; while(*str1++=*str2++); return p; } 42、写一个字符串比较函数 int strcmp(char *str1, const char *str2) { while(*str1 && * str2 && *str1==*str2) { str1++; str2++; } return *str1-*str2; } int strcmp(char *str1, const char *str2) { while(*str1==*str2) { if(*str1=='\\0') return 0; str1++; str2++; } return *str1-*str2; } 43、写一个字符串连接函数 char *strcat(char *str1, char *str2) { char *p=str1; while(*str1!=0) str1++; while(*str1++=*str2++); return n; } 45、写一函数,在一数组里查找某个值。 int search(int a[], int n, int key) { for(int i=0; i 46、编一程序,求两个矩阵的乘积 47、计算某日是某年的第几天 bool isLeapYear(int y) //判断某一年是否闰年 { return (y%4 == 0 && y0 != 0)||(y@0 == 0); } int main() { int year,month,day,i,s=0; int a[13]=(0,31,28,31,30,31,30,31,31,30,31,30,31}; cin>>year>>month>>day; for(i=1; i if(isLeapYear(year) && month>2) s++; cout << s; } 48、编写一个帮助小学生学习加法的程序,随机产生2个数,让学生输入答案。 #include 7 #include int x,y,z; srand( time(0) ); x = rand() % 1000; y = rand() % 1000; cout << x << \ cin >> z; while( z != 0 ) { while( z != x+y ) { cout<<\× 错误!请重做\\n\ cout< cout<<\√ 正确!\\n\ x = rand() % 1000; y = rand() % 1000; cout< 49、从52个数里选13个数 int main() { int i,k,a[52],b[13]; for(i=0; i<52; i++) a[i]=i+1; srand(time(0)); for(i=0; i<13; i++) { k = rand() % (52-i); b[i] = a[k]; swap(a[k],a[51-i]); } for(i=0; i<13; i++) cout< 50、求100! #include { int t,t0=time(0); int len,n=100000; unsigned long a[200000]; a[1]=1; len=1; for(int k=2; k<=n; k++) { long carry=0; for(int i=1; i<=len; i++) { unsigned long s = a[i]*k + carry; carry = s / MOD; a[i] = s % MOD; } while(carry > 0) { len++; a[len] = carry % MOD; carry = carry / MOD; } } t=time(0); int w=(len-1)*4 + int(log10(double(a[len]))) + 1; ofstream fout(\ fout< fout<<\用时:\秒\ fout<<\数组元素个数:\阶乘值位数:\ return 0; } 8

