2、#include<stdio.h>void main(){int a[6][6],b[6],i,j;printf("请输入6个整数:");for(i=0;i<6;i++){scanf("%d",&b[i]);}for(i=0;i<6;i++){a[0][i]=b[i];}for(i=1;i<=5;i++)a[i][0]=b[6-i];for(i=1;i<=5;i++)for(j=1;j<=5;j++){a[i][j]=a[i-1][j-1];}for(i=0;i<=5;i++){for(j=0;j<=5;j++)printf("%d ",a[i][j]);printf("\n");}}3、#include<stdio.h>void main(){int i,j,count,n;int a[100][100];printf("请输入矩阵的阶n=");scanf("%d",&n);count=1;for(i=1;i<=n/2;i++){for(j=i;j<=n-i+1;j++)//上侧{a[i][j]=count;count++;}for(j=i+1;j<=n-i;j++)//右侧{a[j][n-i+1]=count;count++;}for(j=n-i+1;j>=i+1;j--)//下侧{a[n-i+1][j]=count;count++;}for(j=n-i+1;j>=i+1;j--)//左侧{a[j][i]=count;count++;}}if(n%2==1){i=(n+1)/2;a[i][i]=n*n;}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%2d ",a[i][j]);printf("\n");}}4、#include<stdio.h>void main(){int i,j,n,a[100][100],count=1;printf("请输入方阵的阶n:");scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=i;j++){a[i-j+1][j]=count;count++;}for(i=1;i<=n;i++){for(j=1;j<=n-i+1;j++)printf("%4d",a[i][j]);printf("\n");}}5、#include<stdio.h>void main(){int i,j,count,n;int a[100][100];printf("请输入矩阵的阶n=");scanf("%d",&n);count=1;for(i=1;i<=n/2;i++){for(j=i;j<=n-i+1;j++)//上侧{a[i][j]=count;}for(j=i+1;j<=n-i;j++)//右侧{a[j][n-i+1]=count;}for(j=n-i+1;j>=i+1;j--)//下侧{a[n-i+1][j]=count;}for(j=n-i+1;j>=i+1;j--)//左侧{a[j][i]=count;}count++;}if(n%2==1){i=(n+1)/2;a[i][i]=i;}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%2d ",a[i][j]);printf("\n");}}10、狼找兔子问题:一座山周围有n个洞,顺时针编号为0,1,2.,…,n-1。
一只狼从0号洞开始,顺时针方向计数,每当经过第m个洞时,就进洞找兔子。
输入m,n,问兔子有没有幸免的机会?如果有,该藏哪里?#include <stdio.h>void main(){int a[100],b[100],i,n,m,k=0,flag=0;printf("请输入洞的个数n:");scanf("%d",&n);printf("请输入要经过洞的个数m:");scanf("%d",&m);for(i=0;i<n;i++){a[i]=0;b[i]=1;}for(i=0;;i=(i+m)%n){if(a[(i+m)%n]==0)a[(i+m)%n]=1;elseif(a[(i+m)%n]==1)break;}for(i=0;i<n;i++){if(a[i]==0)k++;elseif(a[i]==1)flag++;}if(k>0){printf("\n兔子有幸免的机会,位置为:\n");for(i=0;i<n;i++)if(a[i]==0)printf("%d ",i);printf("\n");}if(flag==n)printf("兔子没有幸免的机会!\n");}12、有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;第三轮从第4张牌开始,凡是4的倍数位置上的牌按上面相同规则翻转,以此类推,知道翻的牌超过104张为止。
统计最后有几张牌正面朝上,以及它们的位置号。
#include<stdio.h>void main(){int a[100],i,sum,k,n=0;for(i=0;i<100;i++)a[i]=1;sum=0;for(i=2;i<53;i++){k=1;while(i*k<53&&sum<=104){a[i*k]=-a[i*k];k=k+1;++sum;}}printf("正面朝上的牌的位置为\n");for(i=1;i<53;i++)if(a[i]==1){n++;printf("%d ",i);}printf("\n");printf("总共%d张牌\n",n);}13、A,B,C,D,E5人为某次竞赛的前五名,他们在公布名次前猜名次。
A说:B得第三名,C得第五名。
B说:D得第二名,E得第四名。
C说:B得第一名,E得第四名。
D说:C得第一名,B得第二名。
A说:D得第二名,A得第三名。
结果每个人都猜对了一半,实际名次是什么呢?#include <stdio.h>void main(){int a,b,c,d,e;for(a=1;a<=5;a++)for(b=1;b<=5;b++)if(a!=b)for(c=1;c<=5;c++)if(c!=a&&c!=b)for(d=1;d<=5;d++){if(d!=a&&d!=b&&d!=c)e=15-a-b-c-d;if(e!=a&&e!=b&&e!=c&&e!=d)if((b==3)+(c==5)==1&&(d==2)+(e==4)==1&&(b==1)+(e==4)==1&&(c==1)+(b==2)==1&&(d==2)+(a==3)==1){printf("五人的名次分别为:\n");printf("A\tB\tC\tD\tE\n");printf("%d\t%d\t%d\t%d\t%d\n",a,b,c,d,e);}}}14、#include<stdio.h>void main(){int i,w1,w2,w3,sql;for(i=10;i<32;i++){sql=i*i;w1=sql/100;w2=sql%100/10;w3=sql%100%10;if(w1==w2||w1==w3||w2==w3)printf("%d*%d=%d\n",i,i,sql);}}15、#include<stdio.h>void main(){int A,B,C;for(A=1;A<=3;A++)for(B=1;B<=3;B++){if(B!=A)C=6-A-B;if(C!=A&&C!=B)if(A!=1&&C!=1&&C!=3)printf("A<->%d\nB<->%d\nC<->%d\n",A,B,C);}printf("1->X 2->Y 3->Z\n");}16、#include<stdio.h>void main(){int number;printf("请输入一个整数\nnumber=");scanf("%d",&number);if(number%4==0)printf("%d能被4整除\n",number);if(number%7==0)printf("%d能被7整除\n",number);if(number%9==0)printf("%d能被9整除\n",number);elseprintf("不能被4,7,9任一个整除\n");}17、#include<stdio.h>void main(){int a,b,c,d;printf("Please think of a number between 1 and 100\n");printf("your number divided by 3 has a remainder of\n");printf("Please Input a=");scanf("%d",&a);printf("your number divided by 4 has a remainder of\n");printf("Please Input b=");scanf("%d",&b);printf("your number divided by 7 has a remainder of\n");printf("Please Input c=");scanf("%d",&c);printf("let me think a moment ...\n");d=28*a+21*b+36*c;while (d>84)d=d-84;printf("你的数字是%d\n",d);}18、#include<stdio.h>void main(){int a,b,c,d,e,f,g,h,i,sum1,sum2;for(a=1;a<=9;a++)for(b=1;b<=9;b++)if(a!=b)for(c=1;c<=9;c++)if(c!=a&&c!=b)for(d=1;d<=9;d++)if(d!=a&&d!=b&&d!=c)for(e=1;e<=9;e++)if(e!=a&&e!=b&&e!=c&&e!=d)for(f=1;f<=9;f++)if(f!=a&&f!=b&&f!=c&&f!=d&&f!=e)for(g=1;g<=9;g++)if(g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&g!=f)for(h=1;h<=9;h++) if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)for(i=1;i<=9;i++)if(i!=a&&i!=b&&i!=c&&i!=d&&i!=e&&i!=f&&i!=g&&i!=h){ sum1=a*10000+b*1000+c*100+d*10+e;sum2=f*1000+g*100+h*10+i;if(sum1==2*sum2)printf("五位数为:%d 四位数为:%d \n",sum1,sum2);}}19、#include<stdio.h>#include<string.h>void main(){char str[100];int sum=0,i,n=0;printf("请输入十六进制数:");gets(str);n=strlen(str);for(i=0;i<n;i++){if(str[i]=='A'|str[i]=='B'|str[i]=='C'|str[i]=='D'|str[i]=='E'|str[i]=='F')str[i]=str[i]-55;if(str[i]=='a'|str[i]=='b'|str[i]=='c'|str[i]=='d'|str[i]=='e'|str[i]=='f')str[i]=str[i]-87;if(str[i]=='1'|str[i]=='2'|str[i]=='3'|str[i]=='4'|str[i]=='5'|str[i]=='6'|str[i]=='7'|str[i]=='8'|str[i]=='9'|str[i]=='0')str[i]=str[i]-48;}for(i=0;i<n-1;i++)sum=(sum+str[i])*16;sum=sum+str[i];printf("十进制数为:%d\n",sum);}20、#include<stdio.h>void main(){int a,b,c,d,e,f,g,h,i;for(a=1;a<=9;a++)for(b=1;b<=9;b++)if(a!=b)for(c=1;c<=9;c++)if(c!=a&&c!=b)for(d=1;d<=9;d++)if(d!=a&&d!=b&&d!=c)for(e=1;e<=9;e++)if(e!=a&&e!=b&&e!=c&&e!=d)for(f=1;f<=9;f++)if(f!=a&&f!=b&&f!=c&&f!=d&&f!=e)for(g=1;g<=9;g++)if(g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&g!=f)for(h=1;h<=9;h++) if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)for(i=1;i<=9;i++)if(i!=a&&i!=b&&i!=c&&i!=d&&i!=e&&i!=f&&i!=g&&i!=h){ if((a*10+b)*(c*100+d*10+e)==(f*1000+g*100+h*10+i))printf("a=%d b=%d c=%d d=%d e=%d f=%d g=%d h=%d i=%d\n",a,b,c,d,e,f,g,h,i);}}21、#include<stdio.h>#include<math.h>void main(){int a,b,c,d,e,f,g,h,i;for(a=1;a<=9;a++)for(b=1;b<=9;b++)if(a!=b)for(c=1;c<=9;c++)if(c!=a&&c!=b)for(d=1;d<=9;d++)if(d!=a&&d!=b&&d!=c)for(e=1;e<=9;e++)if(e!=a&&e!=b&&e!=c&&e!=d)for(f=1;f<=9;f++)if(f!=a&&f!=b&&f!=c&&f!=d&&f!=e)for(g=1;g<=9;g++)if(g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&g!=f)for(h=1;h<=9;h++) if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)for(i=1;i<=9;i++)if(i!=a&&i!=b&&i!=c&&i!=d&&i!=e&&i!=f&&i!=g&&i!=h)if(sqrt(a*100000+b*10000+c*1000+d*100+e*10+f)==(g*100+h*10+i))printf("%d\n",a*100000+b*10000+c*1000+d*100+e*10+f);}23、#include<stdio.h>void main(){int number,w1,w2,w3,w4,w5;printf("请输入一个五位以内的正整数:");scanf("%d",&number);if(number/10==0){printf("它是一个一位数!\n");printf("%d\n",number);printf("正序逆序相同!\n");}elseif(number/100==0){printf("它是一个两位数!\n");printf("正序为:%d %d\n",number/10,number%10);printf("逆序为:%d %d\n",number%10,number/10);}elseif(number/1000==0){printf("它是一个三位数!\n");w1=number/100;w2=number%100/10;w3=number%10;printf("正序为:%d %d %d\n",w1,w2,w3);printf("逆序为:%d %d %d\n",w3,w2,w1);}elseif(number/10000==0){printf("它是一个四位数!\n");w1=number/1000;w2=number%1000/100;w3=number%100/10;w4=number%100%10;printf("正序为:%d %d %d %d\n",w1,w2,w3,w4);printf("逆序为:%d %d %d %d\n",w4,w3,w2,w1);}elseif(number/100000==0){printf("它是一个五位数!\n");w1=number/10000;w2=number%10000/1000;w3=number%1000/100;w4=number%1000%100/10;w5=number%1000%100%10;printf("正序为:%d %d %d %d %d\n",w1,w2,w3,w4,w5);printf("逆序为:%d %d %d %d %d\n",w5,w4,w3,w2,w1);}elseprintf("error!");}27、#include<stdio.h>void main(){int month;printf("请输入月份month=");scanf("%d",&month);switch(month){case 1:printf("January\n");break;case 2:printf("February\n");break;case 3:printf("March\n");break;case 4:printf("April\n");break;case 5:printf("May\n");break;case 6:printf("June\n");break;case 7:printf("July\n");break;case 8:printf("August\n");break;case 9:printf("September\n");break;case 10:printf("October\n");break;case 11:printf("November\n");break;case 12:printf("December\n");break;}。