c - 不兼容的指针错误,会计代码计算器

标签 c algorithm pointers

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

代码如下:

    #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);
}

在切换的每种情况下,我都会收到相同的错误:Incompatible pointer to integer conversion assigning to 'char' from 'char[2]'。

错在哪里?

感谢大家!

最佳答案

您正在尝试将 char 分配给 char*Mo 是一个 char 并且用双引号 (") 包围的字符串是以 结尾的 char* >\0. 使用单引号(') 表示字符。

改变

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
}

关于c - 不兼容的指针错误,会计代码计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862793/

相关文章:

c - 跟随 C 中的指针

c++ - 矩阵实现类 C++ 中的内存管理

c++ - C/C++ 中的高效变量监视

c++ - 在排序和旋转的数组中搜索

c - 背包代码 - 在某些情况下不起作用

algorithm - 交织/多路复用压缩流

algorithm - 生成由 10 个正交连接点形成的所有可能形状的最有效方法是什么?

python - 使用 Swig、python 包装 Patricia Tries 的问题

c - 递归删除树的所有节点

c - 有没有办法将字符串分配给与其声明分开的字符数组?