[英]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.