Ⅰ vs调试时c语言怎么查看二维动态数组的值
使用malloc函数,先分配第一维羡颤的大兄薯败小,然后再循环分配每一维的大小。
示例代码,分配3行4列二维数组:
#include <<a href="https://www..com/s?wd=stdio.h&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EnH0vPjmknHbY" target="_blank" class="-highlight">stdio.h</a>>#include <<a href="https://www..com/s?wd=malloc.h&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EnH0vPjmknHbY" target="_blank" class="-highlight">malloc.h</a>> int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; ++i){//为每列分配4个大小空间 a[i] = (int*)malloc(sizeof(int)*4); } //初始化 for (i = 0; i < 3; ++i){ for (j = 0; j < 4; ++j){ a[i][j] = i+j; } } //输出测试 for (i = 0; i < 3; ++i){ for (j = 0; j < 4; ++j){ printf ("%d ", a[i][j]); } printf ("\n"); } //释放动态开辟手洞的空间 for (i = 0; i < 3; ++i){ free(a[i]); } free(a); return 0;}/*输出:0 1 2 31 2 3 42 3 4 5*/
Ⅱ C语言:用指针的方法查找数组中某个数在数组的位置
对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值。我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到在整型数组中找到被检验值或者整型数组所有元素比较结束为止。
那么这里有个问题,我们如何通过指针知到整型数组什么时候结束呢?对于整型数组而言,没有办法,所以我们必须先知道整型数组的长度,可以在参数中给出,也可以在主函数定义中知晓。
程序如下:
int* find(int a[], int value)
{
int i=0,*p=a;
for(i=0;i<=9;i++)
{
if(*p==value)
return p;
else
p++;
}
if(i>=10)
return 0;
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0};
int n;
scanf("%d",&n);
printf("%x %d",find(c,n),*(find(c,n)));/*第一个为函数返回地址,第二个为函数返回地址里的值*/
getch();
}
另外,我们测试一个程序或者函数是否正确不在于其能否正确运行,而在于其运行的结果是否符合我们的预期。针对上述程序,测试方法如下:
输入任意一个数,如果这个数在数组C内,看是否能够打印出16进制的地址数和与输入值相同的数;如果不在数组C内,看是否返回值为0的地址。
Ⅲ c语言怎么获取数组的内容 博客
在C语言当中,李和对于数组复制要分两种。 1)字符数组。 字符数册扰慎组相当于字符串,州敬可以用标准函数strcpy()和strncpy()直接进行字符串复制。 2)其他数组。 由于C语言的原始性,它并不具备操作符重载。所以对于数组复制,都需要对数组进行遍历
Ⅳ C语言查找数组中的数据
#define IntSize sizeof(int)
#define StructSize sizeof(struct tagresult)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int *ptint;
typedef struct tagresult
{
int v;
char bl;
}*ptresult;
int lessthan(const void *v1,const void *v2)
{
int i1=*((ptint)v1),i2=*((ptint)v2);
if(i1==i2)
return 0;
else if(i1<i2)
return 1;
else
return -1;
}
int main()
{
int c,n,capacity=128,rlen=0,dlen;
ptint data=(ptint)calloc(capacity,IntSize);
ptresult result;
scanf("%d",&n);
result=(ptresult)calloc(n,StructSize);
memset(result,0,n*StructSize);
while(n-->0)
{
scanf("%d",&c);
dlen=0;
for(;c>0;c--)
{
if(dlen+1>=capacity)
{
capacity*=2;
data=(ptint)realloc(data,capacity);
}
scanf("%d",data+dlen++);
}
scanf("%d",&c);
//直接调用库函数qsort进行快速排序,就不自己写快速排序算法函数了
qsort(data,dlen,IntSize,lessthan);
if(c<=dlen)
{
(*(result+rlen)).v=*(data+c-1);
(*(result+rlen)).bl=1;
}
rlen++;
}
for(n=0;n<rlen;n++)
{
if(1==(*(result+n)).bl)
printf("Case #%d:%d\n",n+1,(*(result+n)).v);
else
printf("Case #%d:-1\n",n+1);
}
free(data);
free(result);
return 0;
}
Ⅳ 如何用c语言编写查询数组中的元素
#include
<stdio.h>
#include
<stdlib.h>
void
main()
{
int
b[7];
int
i,
j,
p;
randomize();
/*
这一段代码可保证数组
b
内的
7
个随机数都不一样
*/
for
(i
=
0;
i
<
7;
++i)
{
do
{
b[i]
=
rand()
%
36;
/*
产生随机数
*/
p
=
0;
/*
先假设没有重复
*/
for
(j
=
0;
j
<
i
&&
!p;
++j)
/*
跟已经产生的数字一一比较
*/
{
if
(b[i]
==
b[j])
/*
如果重复了
*/
p
=
1;
/*
就记住是重复了
*/
}
}
汪燃蠢while
(p);
}
/*
这一段只是把结果打出以作验证
*/
for
(i
=
0;
i
<
7;
++i)
printf("%d
",
b[i]);
printf("\n");
}
如果有看不懂的地方,困陪请继续追问,段宏一定会解释清楚。
Ⅵ C语言查找数组中的值
if(num[i]=search) 这句错了,改成if(num[i]==search)
Ⅶ C语言:数组中进行查找操作什么意思
查找的意义是在一堆数据中,使用方法找到你想要找的数据。
一般为分:顺序和折半(又叫二分)查找两种方滚世法。
存放在数组中的数据就可以看成一堆数据,在有限数组内存放一些数据,通过使用查找方法进行查找想要找的数。
顺序方裤备顷法:这种查找方法不需要数组排序,数据可以是无序的。从数组开头向后一个一个与被查找数进行比较,如果找到就做相应的操作(如输出这个数的下标或位置)等。
折半查找法:(二分查找)
前提需要把数组里的数据进行排序(升序或降序)。思路是(假设数组已按升序排序)每次只比较中间的数据(一段距离内),第一次先和中间的数组(下标是这个数组中在中间的)比较,如果相同,则说明被找数已找到。否则就要判断是在大于还是小于:如果是大于,那么就将在中间+1至最后一个数之间的中间数再进行比较。否则就将在第一个至中间-1的数进行胡陆比较;再次重复比较,直到找到数为止。
Ⅷ C语言如何查找并输出数组中含有某一关键字的所有元素
strcmp 是整个字符串比较的,不能用 strcmp,可以用 strstr() 函数,strstr 是在一个字符串中查找一个子串,如果查到返回子串在字符串的位置,查找不到返回NULL。例如:
constchar*p=strstr("清炒薯仔丝","薯仔");
Ⅸ c语言 数组查询
#include<stdio.h>
#include<string.h>
typedefchar*String;
Stringnames[7]={"Allen","Bob"};
intquery(charconst*name){
intindex=0;
while(*(names+index)){
拿团樱//如果字符串相等就意味查询到结果,break退出循环
if(strcmp(*(names+index),name)==0){
break;
}
index++;
}
returnindex;
}
intmain(){
intindex=query("Bob");
printf("或陵%i ",index);
}
使用顺序查找的方法,看程序!
运行结果,查询Bob,Bob的下标为消丛1,返回正确!
Ⅹ C语言数组的查找函数
#include<stdio.h>
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=0;i<5;i++){
if(a[i]>max)
max=a[i];
}
for(i=0;i<5;i++){
if(a[i]<min)
min=a[i];
}
for(i=0;i<5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);
return 0;
}