首頁>Club>
5
回覆列表
  • 1 # 使用者1629500171232

    透過二維陣列的方式進行輸出,程式碼如下:

    #include<stdio.h>

    #include<string.h>

    char S[100][1000]={' '};//宣告表為全域性變數

    int s1=0;

    void chart(int n,int a[],int m);

    int main()

    {

    int n;

    int M1[40]={0},M2[40]={0},M3[40][100]={0};

    int i,j,k,k1,k2,max=0,col,l;

    char s[30][1000];

    scanf("%d",&n);

    getchar();//注意,必須得有這個來接收回車符

    //獲得表格資料

    for(i=0;i<n;i++)

    gets(s[i]);

    //求最大列數

    for(i=0;i<n;i++)

    {

    l=strlen(s[i]);

    for(j=0;j<l;j++)

    {

    if(s[i][j]==',')

    M1[i]++;

    }

    if(M1[i]>max)

    {

    max=M1[i];

    }

    }

    col=++max;

    //求每列最大寬度 //1.先求每個單元的長度,賦給M3[i][j]中

    for(i=0;i<n;i++)

    {

    l=strlen(s[i]);

    k=0;

    for(j=0;j<l;j++)

    {

    if(s[i][j]!=',')

    {

    M3[i][k]++;

    }

    if(s[i][j]==',')

    k++;

    } //for2

    }//for1

    //2.找每列最大的賦予M2[]

    for(j=0;j<col;j++)

    {

    max=0;

    for(i=0;i<n;i++)

    {

    if(M3[i][j]>max)

    max=M3[i][j];

    }

    M2[j]=max;

    }

    //表格

    chart(n,M2,col);

    //輸入資料

    for(i=0;i<n;i++)

    {

    k1=0;

    k2=0;

    k=0;

    l=strlen(s[i]);

    for(j=0;j<l;j++)

    {

    S[2*i+1][k2+1]=s[i][j];

    if(s[i][j+1]==',')

    {

    k1=k1+M2[k]+1;

    k2=k1;

    k++;

    j++;

    }

    else

    k2++;

    }

    }

    //輸出表格

    for(i=0;i<=2*n;i++)

    {

    for(j=0;j<s1;j++)

    printf("%c",S[i][j]);

    printf("\n");

    }

    return 0;

    }

    void chart(int n,int a[],int m)//行數 每列的最大長度陣列

    {

    int i,j,k;

    int s;

    s1=m+1;

    for(i=0;i<m;i++)

    s1+=a[i];

    for(i=0;i<=2*n;i++)

    {

    //輸出奇數行

    if(i%2==0)

    {

    s=0;

    k=0;

    for(j=0;j<s1;j++)

    {

    if(j==s)

    {

    S[i][j]='+';

    s+=a[k];

    s++;

    k++;

    }

    else

    S[i][j]='-';

    }//for

    } //if

    //輸出偶數行

    else

    {

    s=0;

    k=0;

    for(j=0;j<s1;j++)

    {

    if(j==s)

    {

    S[i][j]='|';

    s+=a[k];

    s++;

    k++;

    }

    }

    }

    } //for

    }

  • 中秋節和大豐收的關聯?
  • 7是什麼意思?手機連線無線網錯誤程式碼123?