在C中打印带有整数和字符串的数组 - 不工作

时间:2016-07-11 17:22:51

标签: c

我试图打印出计算器的主板,但不知道如何打印数字和字符串。这是我的代码:

const db   = monk('localhost:27017/test', ...);
db.options = { 
  safe    : true,
  castIds : false
};

编译代码时,出现错误:

  

错误:指向整数转换的不兼容指针初始化' int'   表达式为' char [2]'

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

2 个答案:

答案 0 :(得分:2)

您的array1混合C中不允许的整数和字符串。根据您的情况,您可能希望切换到char数据类型并对所有字符使用相同的print语句。

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

答案 1 :(得分:1)

C是strongly typed language。这意味着您不能只在int数组中放置任何值。 int与Javascript中的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");
}