2018 South University questions d'examen informatique b

2018 South University questions d'examen informatique b

le lien du sujet

Titre description

Lit deux entier positif inférieur à A et B 100 pour calculer A + B, Note: A + chaque bit est donnée par la lettre anglaise correspondante B.

entrée

Entrée de test comprenant une pluralité de cas de test, chaque test par ligne, le format de « A + B = », il y a un espace entre les intervalles de deux chaînes adjacentes. Quand A et B sont simultanément extrémité d'entrée est égal à zéro, ne pas délivrer en sortie les résultats correspondants.

exportation

Une ligne de sortie pour chaque cas de test, à savoir, la valeur de A + B.

entrée d'échantillon

one + two =
three four + five six =
zero + zero =

Exemple de sortie

3
90

sujet idées

Cette question et parlé avant que le mot remplacer cette idée est le même titre, le mot en remplacement de chaîne est sur les mots, cette question est la même. On calcule ensuite. le code

#include<stdio.h>
#include<string.h>
char digit[12][10] = {"zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int judge(char *s)
{
    for(int i = 0; i < 10; i++)
    {
        if(!strcmp(digit[i], s))
            return i;
    }
}
int main()
{
    char str[100];
    int len, p;
    char word[20][20];
    int a, b, pow, temp, d[2][2], j;
    while(gets(str))
    {
        int l = strlen(str);
        p = len = 0;
        for(int i = 0; i < l; i++)
        {
            if(str[i] == '=')
            {
                continue;
            }
            if(str[i] == ' ')
            {
                word[len++][p] = '\0';
                p = 0;
            }
            else
                word[len][p++] = str[i];
        }
        pow = 1;
        p = 1;
        j = 0;
        memset(d, 0, sizeof(d));
        for(int i = len - 1; i >= 0; i--)
        {
            if(!strcmp(word[i], "+"))
            {
                p = 1;
                j++;
                continue;
            }
            d[j][p] = judge(word[i]);
            p--;
        }
        a = d[0][0] * 10 + d[0][1];
        b = d[1][0] * 10 + d[1][1];
        if(a == b && b == 0)
            break;
        printf("%d\n", a+b);
    }
    return 0;
}
Publié 10 articles originaux · louange gagné 13 · vues 233

Je suppose que tu aimes

Origine blog.csdn.net/Mrs_Jiangmengxia/article/details/104882538
conseillé
Classement