View Code of Problem 11

#include <stdio.h>
int main()
{
    int t, i, j, pos = 1;
    int a, c;
    char b, s;
    struct node
    {
        int xishu;
        int zhishu;
    };
    struct node xx, yy, zz;

    scanf ("%d", &t);
    while (t != 0)
    {
        printf("Case #%d:\n", pos);
        pos++;
        for (i=0; i<t; i++)
        {
            xx.xishu = 0;
            xx.zhishu = -1;
            yy.xishu = 0;
            yy.zhishu = -1;
            zz.xishu = 0;
            zz.zhishu = -1;

            scanf("%d %c %d", &a, &b, &c);
            if (b == 'X')
            {
                xx.xishu += a;
                xx.zhishu = c;
            }
            if (b == 'Y')
            {
                yy.xishu += a;
                yy.zhishu = c;
            }
            if (b == 'Z')
            {
                zz.xishu += a;
                zz.zhishu = c;
            }
            s = getchar();
            while (s != '\n')
            {
                scanf("%d %c %d", &a, &b, &c);
                if (b == 'X')
                {
                    xx.xishu += a;
                    xx.zhishu = c;
                }
                if (b == 'Y')
                {
                    yy.xishu += a;
                    yy.zhishu = c;
                }
                if (b == 'Z')
                {
                    zz.xishu += a;
                    zz.zhishu = c;
                }
                s = getchar();
            }

            if (xx.xishu != 0)
            {
                if ( (xx.zhishu == 0) || (xx.zhishu == 1) )
                    printf("%d", xx.xishu);
                else
                {
                    xx.xishu *= xx.zhishu;
                    xx.zhishu--;
                    printf("%d * X ^ %d", xx.xishu, xx.zhishu);
                }
            }
            else
            if (xx.zhishu != (-1))
                printf("0");


            if (yy.xishu != 0)
            {
                if (xx.zhishu != (-1))
                    printf(" + ");
                if ( (yy.zhishu == 0) || (yy.zhishu == 1) )
                    printf("%d", yy.xishu);
                else
                {
                    yy.xishu *= yy.zhishu;
                    yy.zhishu--;
                    printf("%d * Y ^ %d", yy.xishu, yy.zhishu);
                }
            }
            else
            if (yy.zhishu != (-1))
            {
                if (xx.zhishu != (-1))
                    printf(" + ");
                printf("0");
            }

            if (zz.xishu != 0)
            {
                if ( (xx.xishu != (-1)) || (yy.xishu != (-1)) )
                    printf(" + ");
                if ( (zz.zhishu == 0) || (zz.zhishu == 1) )
                    printf("%d", zz.xishu);
                else
                {
                    zz.xishu *= zz.zhishu;
                    zz.zhishu--;
                    printf(" %d * Z ^ %d", zz.xishu, zz.zhishu);
                }
            }
            else
            if (zz.zhishu != (-1))
            {
                if ( (xx.xishu != (-1)) || (yy.xishu != (-1)) )
                    printf(" + ");
                printf("0");
            }
            printf("\n");
        }
        scanf ("%d", &t);
    }
    return (0);
}

Double click to view unformatted code.


Back to problem 11