C语言数组问题,C语言新手 数组问题

2020-11-22 07:58:21 字数 4320 阅读 3770

1楼:千锋教育

你的**问题有以下几个:

1、min和max没有初始化

2、对于a[min]和a[max]没有做循环参考**如下:

#include

main()

printf("最大数是%d,下标是%d,最小数是%d,下标是%d\n", a[max], max, a[min], min);}

2楼:天雨下凡

#include

void main()

printf("min=%d,max=%d\n",min,max);}

c语言新手 数组问题

3楼:匿名用户

(a+i+j)=((a+i)+j) ,

理解运算优先级就好了, 里面的那个括号 可有可无

4楼:斯坦恩贝格(北京)电子****

原解析有误。

二维数组其实就是i个具有j个元素的一维数组,因此a[i][j] --> (*(a+i))[j] --> *(*(a+i)+j)

c语言的问题,指针数组

5楼:匿名用户

改变不了,字符串常量是改不了的,你可以试试char *p = "aaaaa";

p[1] = b;这样是改不了的

只能定义二维数组才可以改

char p[3][100] = ; 这样才可以改,不要问为什么,字符串常量就是不能改

6楼:千锋教育

直接让指针指向另一个字符串即可

p[0]="aaaa";

7楼:橙

这样定义指针指向的字符串是无法修改的。

c语言字符串数组的问题

8楼:匿名用户

#include

int main()

;scanf("%s",a);

for(i=0; a[i] != '\0'; i++)for( j=0; j<5; j++) //修改:1:下标从0~4,共5个

return 0;}

9楼:兄弟连教育北京总校

每行结尾的 \ 仅仅是为了连接字符串使用的,

如果一个字符串过长,写在一行比较不合适,

就在该行结尾处加上一个反斜杠 \ 就可以在下边的行继续写这个字符串,

如 "123456789abcdefg"

和"123456789\

abcdefg"

这两种写法是同样的。

而根据text函数的特性

text ("text files (*.txt)\0*.txt\0") \

text ("ascii files (*.asc)\0*.asc\0") \

text ("all files (*.*)\0*.*\0\0")

又等同于

text ("text files (*.txt)\0*.txt\0ascii files (*.

asc)\0*.asc\0all files (*.*)\0*.

*\0\0")

所以你上边写的就等同于

static tchar szfilter=text ("text files (*.txt)\0*.txt\0ascii files (*.

asc)\0*.asc\0all files (*.*)\0*.

*\0\0") ;

确实是一个字符数组,对于字符串数组的说法,我也不敢苟同。

10楼:

if(a[i]==b[j]) 是判定不是赋值

关于c语言中数组定义问题

11楼:育知同创教育

主函数内定义的数组在堆栈段中分配内存。

全局变量数组在数据段中分配内存。

一般数据段比堆栈段大很多,

所以堆栈段分配不了的内存,数据段可以分配

(1)在堆栈段中分配内存,由于太大无法分配,所以错误。

(2)在数据段中分配内存,数据段可以分配,无错误。

(3)数组比(1)需要的内存少,在堆栈段大小范围内,可以分配,无错误(4)同(3)

数组––c语言

12楼:黑马程序员

main()

for(i=0;i<=10;i++)

printf("%5d",b[i]);

printf("\n");

13楼:

int a[2][3]=;这样是可以的,{}里边把要赋值的数都写上,如例子中数组元素一共有6个,但是你赋值的个数小于6个也是可以,没有值的 部分系统能够自动赋值为0

c语言数组与指针相关问题,谢谢

14楼:一颗程序猿

*p[1] 相当于 p[1][0], 值为4, 加上1就是5了

15楼:千锋教育

注意操作符的优先级,第三个*p[1]+1中最高,所以是p[1]即为34f9a8,再是*指针取内容操作符,即取出地址34f9a8的内容即为4,再+1所以得到5

c语言指针数组

16楼:千锋教育

p是int类型指针,指向数组a的第1个元素即一个一维的数组首地址所以p[1]相当于a[0][1]所以printf("%d\n",p[1]);

输出2 。 int **pp =pa 是声明了一个指向pa的指针,而pa又是指向a首地址的int类型指针。pa指向的是a的第一维,pa[0] = a[0] ,pp[2][1]相当于a[2][1]而a数组的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默认的值0,所以printf("%d\n",pp[2][1]);输出0

17楼:匿名用户

void main()

,,};

int *pa[3]=;

int *p=a[0];

int **pp=pa; //这句什么意思??//定义了指向指针的指针变量

printf("%d\n",*a[1]);

printf("%d\n",*(*(a+1)+1));

printf("%d\n",*pa[1]);

printf("%d\n",p[1]); //为什么输出为2 ???//这里应该是输出了一个地址

printf("%d\n",pp[2][1]);} // pp不是地址吗,不加* 吗?//指针指向数组的首地址之后是可以当数组名用的。

c语言中数组的合并

18楼:千锋教育

//两个数组合并,参考**:

#include "stdio.h"

int d=0; //用于记录数组c的大小,和数组c的输出类的一些操作

void main()

}if(leap==0) break; //经历了一个内for循环,leap==0的话,表明排序成功了,不需要接下来在排序了。}}

void prin(int *p,int n) //自定义函数 数组输出函数

printf("\n");

}void hb(int *o,int *p,int *q,int m,int n) //m为p指向数组的大小 n为q指向数组的大小 指针o指向合并的数组

else

if(i==m||j==n) break;

}if(i==m)

}if(j==n)}}

19楼:匿名用户

#include

void displayarray(int *parray, int nlen)

}void mergearray(int *parray1, int nlen1, int *parray2, int nlen2, int *parray)

else if (parray1[i] > parray2[j])else

}if (i == nlen1)

else

}int main()

;int array2 = ;

int array3[8];

mergearray(array1, 4, array2, 5, array3);

printf("merge array:\n");

displayarray(array3, 9);

return 1;}

C语言中数组下标有下限吗,c语言中,数组元素的下标下限为

1楼 天云一号 c语言中数组的下标是根据用户定义的数组大小来确定的,最小下标为0 举例说明如下 int a 5 定义一个int型数组,并对其进行初始化。则共有a 0 a 1 a 2 a 3 a 4 这5个元素,所以其下标的范围为0 5 更一般的就是 数组a n 的下标范围为0 n 1 2楼 百度用户...

C语言数组中重复的数据都不要,C语言编程:判断数组里有没有重复数字,有true,无false

1楼 匿名用户 首先要确定数组中存的是什么类型的数据,之后strlen他的长度,从0开始到strlen a 10 2为止,两个for循环比较,如果相等,删除那两个数据 就是将他赋值为空 就是这样 2楼 匿名用户 void main b 10 int i j k 0 c 0 for i 0 i str...

C语言如何删除数组中的重复元素,C语言删除一个整型数组里面重复的元素

1楼 include stdafx h vc 6 0加上这一行 include stdio h void main void ln for ln sizeof a sizeof int k i 1 i k a k a i for i 0 i printf n c语言删除一个整型数组里面重复的元素 2...