C语言怎样循环创建数组

Python016

C语言怎样循环创建数组,第1张

#include <stdio.h>

#include<stdlib.h>

struct s

{int a[2]

struct s *next

} //定义了一个结构体

main()

{ int i=0

struct s *head,*p

head=p=(struct s *)malloc(sizeof(struct s))//开辟一个新单元

for(i=0i<2i++) //定i<2,(如果你想要100个数组,i 就等于100)类似于你定义了2个一维数组

{

scanf("%d",p->a)

p=p->next=(struct s *)malloc(sizeof(struct s))

}

p=head//使p指针指向第一个数

printf("%d\n",p->a[0])//如果你想看第二个数组里的a[0]的数值改成(p->a[0])+1。

}

一个有4个for循环,前面3个是循环嵌套,即循环中套循环再套循环,最后一个for是单独循环。

这个代码功能是删除数组中重复的值,代码逻辑是:

把数组中第一个数拿出来,再分别与这个数后面的所以数进行比较,如果发现重复的,就把这个重复的数之后的全部数在数组中向前移动一位,即去掉这个重复的数,比较完后,再取第二个数,同样也与第二个数后面的所以数进行比较,并删除重复数,这样全部完成后,数组中就没有重复的值。

不知道这种无意义的代码当题有什么意义。。。

简单来说就是循环访问1、2、3行,第一行循环访问2、3列,第二行访问3列,第三行不访问。然后把对称元素置0。然后后面输出的又和对称元素无关,就是输出第一行的2、3列,第二行的3列。所以是输出 2 3(换行)6。

另外这个估计是C99的代码,标准的初始化应该是

int a[][3]={{1,2,3},{4,5,6},{7,8,9}}