实验四 字符串和多维数组

来源:互联网 发布:shadownsocks mac下载 编辑:程序博客网 时间:2024/04/29 12:56
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family: Arial, Helvetica, sans-serif;">#include<iostream></span>
using namespace std;int main(){char str[50];int len=0;cout<<"请输入一个字符串:";cin.get(str,50);while(str[len]!='\0')len++;cout<<"字符串"<<str<<"的长度为:"<<len<<endl;return 0;}


<pre name="code" class="html">#include "stdio.h"#define LENGTH 10#define SIZE LENGTH*LENGTHinta[LENGTH][LENGTH],b[SIZE],degree,number=0,max,sum;int main(){int i=0,j=0,m,temp,n,x,k,y,h,z;printf("please input a degree:");scanf("%d",°ree);max=degree*degree;sum=(max+1)*degree/2;for(i=1;i<=degree;i++){b[i]=0;for(j=0;j<degree;j++){a[i-1][j]=0;}}i=j=z=0;while(1){temp=a[i][j];a[i][j]=0;for(m=temp+1+z,z=0;m<=max;m++){if(b[m]==0){if(temp!=0){b[temp]=0;temp=0;}if(i<degree-2 && j<degree-2){if(i==degree-3){for(n=0,x=0;n<i;n++){x+=a[n][j];}x+=m;k=sum-x;if(k>max+max-1 || (k==max+max-1 && (b[max]==1 || b[max-1]==1))){continue;}if(k<3 || (k==3 && (b[1]==1 && b[2]==1))){m=max+1;break;}}if(j==degree-3){for(n=0,x=0;n<j;n++){x+=a[i][n];}x+=m;k=sum-x;if(k>max+max-1 || (k==max+max-1 && (b[max]==1 || b[max-1]==1))){continue;}if(k<3 || (k==3 && (b[1]==1 && b[2]==1))){m=max+1;break;}}a[i][j]=m;b[m]=1;j++;break;}if(j==degree-2){for(n=0,x=0;n<j;n++){x+=a[i][n];}x+=m;k=sum-x;if(k>0 && k<=max && m!=k && b[k]==0){a[i][j]=m;b[m]=1;a[i][j+1]=k;b[k]=1;if(i<degree-2){i++;j=0;break;}}else{if(i==degree-2 && j==1){j--;b[a[i+1][j]]=0;a[i+1][j]=0;break;}else{continue;}}}if(i==degree-2){for(n=0,x=0;n<i;n++){x+=a[n][j];}x+=m;k=sum-x;if(k>0 && k<=max && m!=k && b[k]==0){if(j<degree-2){if(j==0){for(n=0,x=degree-1,y=0;n<i;n++){y+=a[n][x--];}y+=k;h=sum-y;if(h>0 && h<=max && h!=k && h!=m && b[h]==0){a[i][j]=m;b[m]=1;a[i+1][j]=k;b[k]=1;z=h-1;j++;break;}else{continue;}}if(j==1){for(n=0,x=degree-1,y=0;n<i;n++){y+=a[n][x--];}y+=(a[degree-1][0]+m);if(y!=sum){b[a[degree-1][0]]=0;a[degree-1][0]=0;j--;break;}}a[i][j]=m;b[m]=1;a[i+1][j]=k;b[k]=1;j++;break;}else if(j==degree-2){for(n=0,x=0;n<=i;n++){x+=a[n][n];}h=sum-x;if(h>0 && h<=max && h!=m && h!=k && b[h]==0){for(n=0,y=0;n<=j;n++){y+=a[n][degree-1];}if(y==x){for(n=0,y=0;n<i;n++){y+=a[degree-1][n];}y+=k;if(y==x){a[i+1][j]=k;b[k]=1;a[i][j]=m;b[m]=1;a[++i][++j]=h;b[h]=1;}else{continue;}}else{continue;}}else{b[a[i][j+1]]=0;a[i][j+1]=0;b[a[i][j]]=0;a[i][j]=0;if(j==1){b[a[i+1][j-1]]=0;a[i+1][j-1]=0;j--;break;}else{continue;}}}}else{if(j==1){if(j==degree-2){b[a[i][j+1]]=0;a[i][j+1]=0;}b[a[i][j]]=0;a[i][j]=0;j--;b[a[i+1][j]]=0;a[i+1][j]=0;break;}if(j==degree-2){b[a[i][j]]=0;a[i][j]=0;b[a[i][j+1]]=0;a[i][j+1]=0;}continue;}}if(i==degree-1 && j==degree-1){for(k=0;k<degree;k++){for(h=0;h<degree;h++){printf("%4d",a[k][h]);}printf("\n");}printf("\n");number++;if(number==10000){getchar();getchar();}for(k=degree-2;k<degree;k++){for(h=1;h<degree;h++){b[a[k][h]]=0;a[k][h]=0;}}b[a[degree-1][0]]=0;a[degree-1][0]=0;i--;j=0;break;}}}if(m>max){if(temp!=0){b[temp]=0;}if(j==0 && i>0){i--;j=degree-1;b[a[i][j]]=0;a[i][j]=0;j--;}else if(j>0){j--;b[a[i+1][j]]=0;a[i+1][j]=0;}else if(i==0 && j==0){break;}}}printf("the total number is %d\n",number);return 0;}


                                             
0 0
原创粉丝点击