C语言 不兼容的指针错误,会计代码计算器



我正在尝试创建一个财政代码计算器算法。

代码如下:

    #include<stdio.h>
#include<string.h>
int main()
{
    int Day,Month,Year,i;
    char Mo;
    char Name[1][30];
    char Surname[1][30];
    char A,B,C,D,E,H,L,M,P,R,S,T;
    printf("Insert your birthday day: ");
    scanf("%d",&Day);
    printf("Insert your birthday month: ");
    scanf("%d",&Month);
    printf("Insert your birthday year (last two numbers): ");
    scanf("%d",&Year);
    /*Month calculator*/
    switch(Month)
    {
        case 1:
            Mo="A";
            break;
        case 2:
            Mo="B";
            break;
        case 3:
            Mo="C";
            break;
        case 4:
            Mo="D";
            break;
        case 5:
            Mo="E";
            break;
        case 6:
            Mo="H";
            break;
        case 7:
            Mo="L";
            break;
        case 8:
            Mo="M";
            break;
        case 9:
            Mo="P";
            break;
        case 10:
            Mo="R";
            break;
        case 11:
            Mo="S";
            break;
        case 12:
            Mo="T";
            break;
    }
printf("Your fiscal code is: %d%c%d",Year,Mo,Day);
}

在开关的每种情况下,我都收到相同的错误:指向整数转换的指针不兼容,从"char[2]"分配给"char"。

错误在哪里?

谢谢大家!

您正在尝试将 char s 分配给char* s。 Mo是一个char,用双引号(")括起来的字符串char*结尾。使用单引号( ' ) 表示字符。

改变

switch(Month)
{
    case 1:
        Mo="A";
        break;
    case 2:
        Mo="B";
        break;
    case 3:
        Mo="C";
        break;
    case 4:
        Mo="D";
        break;
    case 5:
        Mo="E";
        break;
    case 6:
        Mo="H";
        break;
    case 7:
        Mo="L";
        break;
    case 8:
        Mo="M";
        break;
    case 9:
        Mo="P";
        break;
    case 10:
        Mo="R";
        break;
    case 11:
        Mo="S";
        break;
    case 12:
        Mo="T";
        break;
}

switch(Month)
{
    case 1:
        Mo='A';
        break;
    case 2:
        Mo='B';
        break;
    case 3:
        Mo='C';
        break;
    case 4:
        Mo='D';
        break;
    case 5:
        Mo='E';
        break;
    case 6:
        Mo='H';
        break;
    case 7:
        Mo='L';
        break;
    case 8:
        Mo='M';
        break;
    case 9:
        Mo='P';
        break;
    case 10:
        Mo='R';
        break;
    case 11:
        Mo='S';
        break;
    case 12:
        Mo='T';
        //break; Not needed
}

相关内容

最新更新