繁体   English   中英

用C打印带有整数和字符串的数组-不起作用

[英]Printing an array with both integers and strings in C - Not working

我正在尝试打印计算器的面板,但不知道如何同时打印数字和字符串。 这是我的代码:

#include <stdio.h>
#include <stdlib.h> 

int main(int argc, char *argv[])
{ 
    int array1[4][4] = {
        {7,   8,   9,  "%"},
        {4,   5,   6,  "x"},
        {1,   2,   3,  "-"},
        {0, ".", "+",  "="}
    };

    for (int i = 0; i < 4; i++)
    {
         for (int j = 0; j < 4; j++)
           {
                printf("%2i", array1[i][j]);
           }
        printf("\n");
    }
}

编译代码时,出现错误:

错误:使用整数类型“ char [2]”的表达式初始化“ int”的整数转换指针不兼容

关于如何解决此问题的任何想法/提示?

您的array1混合使用整数和字符串,这在C是不允许的。 根据您的情况,您可能需要切换到char数据类型并对所有字符使用相同的打印语句。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, j;
    char array1[4][4] = {
        {'7','8','9','%'},
        {'4','5','6','x'},
        {'1','2','3','-'},
        {'0','.','+','='}};

    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("%c", array1[i][j]);
        }
        printf("\n");
    }
}

C是强类型语言 这意味着您不能只将任何值放入int数组中。 int与Java语言中的var ,它是一种内置类型,只能存储数字整数值( 而不是字符串!)。

我可以看到您正在尝试仅使用一个字符长的字符串和一个数字,也许更适合您的类型是char

char array1[4][4] = {
    {'7','8','9','%'}, 
    {'4','5','6','x'}, 
    {'1','2','3','-'},
    {'0', '.', '+','='}
};

现在,您可以使用以下命令打印矩阵:

for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%c", array1[i][j]);
    }
    printf("\n");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM