c语言数组函数大全及详解 c语言函数与数组

c语言,数组定义

你好

创新互联专注于长宁企业网站建设,响应式网站建设,电子商务商城网站建设。长宁网站建设公司,为长宁等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

一维数组

一维数组的声明包括如下结构:类型 变量名[N],其中N是你要定义的一维数组长度。

下面我们就通过一个例子声明一个int类型的数组,并且进行数组的赋值以及输出。

在cpp文件main()函数中输入以下语句

int a[10];//声明一维整形数组,数组长度为10

for (int i =0;i10;i++)

{

a[i]=i;

coutiendl;

}

return 0;

然后ctrl+F5运行

我们可以看到如下结果:在i行输出的是a[i]

二维数组

二维数组的声明结构:类型 变量名[M][N],其中M代表行数,N代表列数,下面我们也通过一个例子声明一个整形(int)的二维数组,并且进行相应的 赋值与输出。

在main()函数中输入以下代码

int a[4][5];//二维数组声明

int i,j;

for ( i =0;i4;i++)

{

for (j=0;j5;j++)

{

a[i][j]=(i+1)+(j+1);

couta[i][j]"  ";

}

coutendl;

}

return 0;

然后ctrl+F5运行

结果输出的内容是二维数组的每个元素,二维数组就是矩阵,数组的每个元素是相应的行号和列号的和

满意请采纳

c语言,字符数组函数

#include stdio.h

/*比较两个字符串*/

/*src、dst相等 return 1*/

/*src比dst短 return -2*/

/*src比dst长 return 2*/

/*src、dst长度一致但不相等 return -1*/

int stringCmp (char *src, char *dst) {  

if (strlen (src)  strlen (dst))

return -2;

else if (strlen (src)  strlen (dst))

return 2;

else {

while (*src  *dst) {

if (*src != *dst)

return -1;

src++;

dst++;

}

return 1;

}

}

/*合并两个字符串*/

void mergeString(char* str1, char* str2, char* merge) {

while (*merge++ = *str1++); /*复制str1并将指针移动到字符串的末尾的下一个位置*/

merge--; /*退到字符串的末尾*/

while (*merge++ = *str2++); /*从末尾(\0)的位置开始将str2拷贝进来*/

*merge = '\0';

}

int main(void) {

char *str1_1="hel",*str1_2="lo", *merge1;

char *str2_1="ness",*str2_2="happy", *merge2;

char *str3_1="hi",*str3_2="hi", *merge3;

char *str4_1="hello",*str4_2="world", *merge4;

puts ("第1组字符串:");

puts (str1_1);

puts (str1_2);

if (stringCmp (str1_1, str1_2) == 1)

puts (str1_1);

else if (stringCmp (str1_1, str1_2) == -2) {

mergeString (str1_2, str1_1, merge1);

puts (merge1);

}

else if (stringCmp (str1_1, str1_2) == 2 || stringCmp (str1_1, str1_2) == -1) {

mergeString (str1_1, str1_2, merge1);

puts (merge1);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第2组字符串:");

puts (str2_1);

puts (str2_2);

if (stringCmp (str2_1, str2_2) == 1)

puts (str2_1);

else if (stringCmp (str2_1, str2_2) == -2) {

mergeString (str2_2, str2_1, merge2);

puts (merge2);

}

else if (stringCmp (str2_1, str2_2) == 2 || stringCmp (str2_1, str2_2) == -1) {

mergeString (str2_1, str2_2, merge2);

puts (merge2);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第3组字符串:");

puts (str3_1);

puts (str3_2);

if (stringCmp (str3_1, str3_2) == 1)

puts (str3_1);

else if (stringCmp (str3_1, str3_2) == -2) {

mergeString (str3_2, str3_1, merge3);

puts (merge3);

}

else if (stringCmp (str3_1, str3_2) == 2 || stringCmp (str3_1, str3_2) == -1) {

mergeString (str3_1, str3_2, merge3);

puts (merge3);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第4组字符串:");

puts (str4_1);

puts (str4_2);

if (stringCmp (str4_1, str4_2) == 1)

puts (str4_1);

else if (stringCmp (str4_1, str4_2) == -2) {

mergeString (str4_2, str4_1, merge4);

puts (merge4);

}

else if (stringCmp (str4_1, str4_2) == 2 || stringCmp (str4_1, str4_2) == -1) {

mergeString (str4_1, str4_2, merge4);

puts (merge4);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

getch (); /*屏幕暂留*/

return 0;

}

运行结果

C语言中对数组进行操作的函数有哪些?

没有这样的库函数,都比较简单的,自己写个好了

如果是字符串数组,strchrstring.h可以查找某个字符是否在这个字符串数组中

c语言数组与函数?

给你看一下我的代码

#includestdio.h

void main(){

int a[10],b[10],i,j,temp;

for(i=0;i10;i++){

printf("请输入第%d个数:",(i+1));

scanf("%d",a[i]);

//保存数组,因为输入完数组要冒泡排序,排序后的元素顺序可能和原数组不一样

b[i]=a[i];

}

//冒泡排序,求最大值

for(i=0;i9;i++){

for(j=0;j9-i;j++){

if(a[j]a[j+1]){ //这里控制的升序还是降序,我这是降序

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

//查找最大值在原数组的位置

for(i=0;i10;i++){

if(b[i]==a[0]){ //降序的话最大值是a[0],升序的话最大值是a[9]

break; //一旦找到最大值,马上跳出循环

}

}

printf("最大值是%d,它在原数组中是第%d个元素!\n",a[0],(i+1));

}

C语言数组与函数

你的程序:

main()

{

int b[3];

b=pop();

}

int * pop()

{

int a[3],i;//定义的局部变量a[3]在调用完之后自动释放其空间

for(i=0;i3;i++)

a[i]=i;

return a;//返回的是指向数组a[3]的地址而不是数组a[3]本身

}

注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b接收的应该是指向数组a[3]的地址,而数组a[3]在方法调用完后又被释放了,所以b接收不到数组a[3],故出错。

正确的程序:

#includestdio.h

main()

{

int b[3];

pop(b,3);

}

void pop(int a[],int n)//该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变

{

int i;

for(i=0;in;i++)

a[i]=i;

}

C语言数组的输出函数

#include

"stdio.h"

void

input(int

a[10])

//给一维数组输入数据

{

int

i;

for(i=0;i10;i++)

scanf("%d",a[i]);

}

void

output(int

a[10])

//输出一维数组输入数据

{

int

i;

for(i=0;i10;i++)

printf("%d

",a[i]);

}

int

main()

{

int

b[10];

input(b);

//调用input函数给数组b赋值

output(b);//调用output函数输出数组b中的值

}


分享名称:c语言数组函数大全及详解 c语言函数与数组
分享路径:http://myzitong.com/article/doddssp.html