0
我正在嘗試編碼c中的蛋白質摺疊項目。 在哪裏我會給一個長度爲3-4的字符串讓我們說BWB或BBWW ... 我必須將此字符串存儲在二維數組中,並使用此字符串打印所有可能的組合。在二維陣列中打印字符串的各種構象
如果字符串的長度是n,矩陣的長度是2n。我將第一個元素存儲在數組的中心。
我到目前爲止所嘗試的內容如下 - 我可以打印特定輸入的構造數量 - 比方說3字母字符串,它將生成12個組合。對於4它將生成36個組合。 。像這樣..
所以我的第一個字母ll在矩陣的中心,然後第二個單詞可以在任何位置 - 這一個的頂部,左側,右側,...取決於這第二個第三個可以在上,右,左或任何3個組合...
總我還得12個組合..
我已經TR滅蠅燈很多事情到現在......和任何我想是
#include<string.h>
#include<math.h>
#include<stdio.h>
main()
{
int n=3;
//printf("enter the number of inputs:\t");
//scanf("%d",&n);
int i=4;
int temp=pow((i-1),(n-2));
int comb=i*temp;
//printf("total number of combination is : %d",comb);
char str[3]="ABC";
int size=2*n;
int p;
char mat[size][size];
int j,k;
int a=size/2;
int b=size/2;
for(j=0;j<size;j++)
{
for(k=0;k<size;k++)
{
mat[j][k]='*';
}
}
mat[a][b]=str[0];
int q;
int r;
for(r=1;r<3;r++)
{
for(q=1;q<=4;q++)
{
switch(q)
{
case 1:a=a+1;
break;
case 2:a=a-1;
break;
case 3:b=b+1;
break;
case 4:b=b-1;
break;
}
mat[a][b]=str[r];
}
}
for(p=0;p<comb;p++)
{
for(j=0;j<size;j++)
{
for(k=0;k<size;k++)
{
printf("%c",mat[j][k]);
}
printf("\n");
}
printf("\n");
}
printf("total number of combination is : %d",comb);
}
輸出我得到的是
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
total number of combination is : 12
任何幫助將不勝感激!
你能解釋一下「組合」嗎?你是否試圖創建輸入字符串的*排列? –