2016 - 2024

感恩一路有你

c语言数组可以放负数吗 、给整型二维数组b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和?

浏览量:3249 时间:2021-03-10 13:36:37 作者:admin

、给整型二维数组b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和?

#包括和限制。H>

void main()

{

int i,J,B[3][4],S1=0,S2=0

printf(“please input array:n”)

for(i=0I<3i)

for(J=0j<4j)

]{

scanf(%d”,&B[i][J])

if(B[i][J]>0)

S1=B[i][J

]else

S2=B[i][J

}]printf(“所有正数之和为%dn”,S1)

printf(“所有负数之和为%dn”,S2)

C语言中为什么将数组(数组内都是数字)以字符串格式输出会打印出中文?

此问题涉及字符编码和数组存储机制。让我们用一个例子来解释。首先,让我们看看下面这个简单的程序及其运行结果,如下图所示:

首先,我们定义了两个数组STR1和STR2,一个是STR2它是以汉字的形式初始化的,代码的第10行,另一个是以字节数的形式初始化的,见代码的第11行。表面上看,这两个阵列是完全不同的。让我们以不同的方式输出它们的内容。首先,分别在第13行和第14行以字符串的形式输出它们的内容。右边的程序执行结果显示,它们输出的内容相同——欢迎来到西安。此外,我们还定义了一个数组Arr1并通过数字为其赋值。代码是12行。在15行中,我们将Arr1转换为字符串并输出其内容。我们也得到了同样的结果。接下来,我们以数字方式输出STR1、STR2和pstr3的内容。见本准则第17-28行。在右边的输出结果中,我们可以看到相同的内容以三种方式输出。

从上面的程序可以看出,虽然数组以不同的方式初始化和分配,但是使用相同的输出方法将获得相同的输出结果。可见它们的实质是一样的。

为什么会这样?它涉及到字符的存储。我们知道,计算机内部的数据是由0和1组成的二进制数。为了表示字符,我们需要对它们进行编码。因为计算机技术最初是从美国发展起来的,原来的ASCII编码只包括英文字母、数字和控制字符,总共256个字符。后来,随着计算机的发展,应用越来越广泛,其他国家为了使计算机能够处理自己的语言,他们发明了很多其他的编码方法,各种编码方法之间存在着严重的兼容性问题,所以为了统一,后来人们提出了Unicode编码。在这种编码模式下,每个汉字存储在两个字节中。如果输出为字符串,将显示字符的内容。如果输出为数字,则显示其编码。

目前,大多数现代编译器开始使用Unicode编码字符串。例如,当我使用vs2017时,数组内容是数字,但可以输出中文字符。如果用一些旧的编译器替换相同的代码,可能无法输出汉字,但会输出一些乱七八糟的代码。

c语言数组可以放负数吗 c语言数组下标为负数 数组一定要从0开始吗

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。