-
如果你只需要算法,那么你用C也没关系,对吧?
#include
#include
#include
#define students 40
#define r 10
int main()
int score[students];
int count[r+1]=;
int i,j;
srand(time(null));
for(i=0;i
#include
#include
#include
#define students 40
#define r 10
using namespace std;
int main()
int score[students];
int count[r+1]=;
int i,j;
srand((unsigned)time(null));
for(i=0;icount[score[i]]+
for(i=1;i<=r;i++)
cout
-
所谓数组,就是一组同数据类型的元素按一定顺序排列,即用名称命名有限数量的相同类型的变量,然后用数字来区分它们的变量。 组成数组的各个变量称为数组的组成部分,也称为数组的元素,有时也称为下标变量 unrooted。 数组是一种编程形式,它以有序的形式组织多个相同类型的变量,以便于处理。
这些同类数据元素的顺序集合称为数组。
-
1.首先,我不需要问这样的问题。 你可以自己解决它,你用 str 替换 str[4],你将输出一个数组。
因为 str 本身就是一个指针,再加上指针章节的知识,%s 实际上输出了所有以 str 指针开头的数字。
2.了解了指针和数组的关系,可以自己写一个char *p; 然后指向数组,然后 printf p+3 输出 str 的第四个字符。
3.将 %s 改为 %c 输出你想看到的结果,%c 输出一个字符,%s 输出你从指针输出到末尾的所有字符,例如,以你为例,if printf(“%s”,str); 是输出str指针后的所有字符,if printf(“%s”,str+2); 这就是 str[2] 之后的所有字符。
关键是要了解指针和数组之间的关系。 char str[100] 就是在内存中为 100 个 char 变量分配空间,然后用指针 str 指向他,数组的名称其实是一个指针,指向数组的开头。
-
str[4] 是一个字符。
str+4 是一个地址。
s 打印时必须使用地址,因此将其更改为 str+4。
-
str[4] 是对应地址的值,str +4 也是地址指针。
-
C++ 中的数组具有一些简单的功能:
1.每个元素类型都是一样的; 也就是说,数组元素的长度相同;
2、阵列占用连续存储空间;
3.数组占用空间的第一个地址是数组的名称;
4.使用下标引用数组中的每个元素;
5. 数组中的每个元素实际上都等价于一个自变量(空间)。
-
数组是一个连续的内存,总大小是变量类型占用的字节数 * 数组元素的数量。
-
将阵列视为连续的存储。
-
你书中的解释已经告诉你答案了,x和数字是两个自变量,也就是说,它们都占据了内存中的两个空间块,任何一个空间的值都在变化而不影响对方。
而y是一个数组,y代表数组的名称,数组的名称代表数组的起始地址,number是一个指针,它指向数组,指针可以通过它的地址找到它的内存空间位置,然后改变它的值,给number[0]赋值,这就改变了数组y的第一个元素。
你可以用一维数组来模拟,也可以自己计算下标,因为不管你定义多少维,在内存中都是线性的,比如C存储在安星中,也有基于列的存储,比如fortran语言,你定义多维,但是编译器帮你计算下标, 所以你可以用一维数组自己模拟,比如用int a[10]模拟int b[5][2],a[0]是b[0][0] a[5]是b[2][1] a[9]是b[4][1] >>>More
当我们写 int a[10] 时,从逻辑上讲,a 中什么都没有。 我们希望 A 数组中有元素(或者还有什么输出? ),所以有第一个 for,让 a[0]=0, a[1]=1.... >>>More