1. C语言数组编译问题~~~~~
void Printfnumber(int b[],int n){ int i; for(i=0;i<n;i++) { printf("%d\t",&b[i]); //去掉&就OK!! } printf("\n");
2. C语言数组问题,怎么处理C语言数组定义长度的超出部分
实际遇到的话,说明程序逻辑有问题,或者是程序员因为特殊的目的故意这样写的。
C语言中的变量是按照顺序依次分配内存空间的,不同的操作系统内存生长的方向是不同的
比如下面的程序在我的机器上(WIN7MyC++)
#include<stdio.h>
#include<math.h>
intmain()
{
intt[5]={-1,-2,-3,-4,-5};
inttable[5]={1,3,5,7,8};
inttemp[5]={2,4,6,9,10};
printf("%d ",table[8]);//输出-4
printf("%d ",table[-2]);//输出9
return0;
}
内存图如下
3. C语言数组编译
输入:
for (i = 0; i < 5; i++)
for (j = 0; j < 5; j++)
scanf("%d", &a[i][j]);
加n处理
for (i = 0; i < 5; i++)
for (j = i; j < 5; j++)
a[i][j] += n;
输出
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
printf("%d ", a[i][j]);
printf("\n");
}
其他代码自己补吧
4. 请问C语言中大数组如何处理
你仔细看看这些数据都是有规律的,有相当大的一部分都是0 1 2 3 4 5 6 13重复了很多次。统计一下这些循环出现了多少次,如果考虑这个因素,压缩还是可以的。
否则的话,所有的数据都是0-15区间的整数,即使考虑使用4位二进制压缩,1个字节(8 bit)可以存2个整数,41502个数也需要20K byte,已经超过内存上限了...
如果数据没有规律,而且实在要压缩的话,考虑用霍夫曼编码可能好一些,不过我估计也挺悬的。可以考虑其他方式,不要保存在内存中,程序运行时需要哪一部分数据再读进来。
5. 怎么用c语言,对数组取整
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
b[i]=(int)a[i];
}
6. c语言数组怎么清零
c语言不能对这个数组赋值,只能通过遍历数组达到给数组中每个元素赋值的目的。初始化的时候可以用inta[4]={0};这样给整个数组元素赋值为0,若想给已初始化的数组清零,也只能遍历数组。
在C语言中,所谓的“清空”,意思是“无视里面的数据”,而不是“让里面没有数据”。有时候可能需要把一个数组清零,意思是全部数据都用0填充,可以用库函数来实现。假设数组名为a,无论什么类型也无论几维都一样,可以写成memset(a,0,sizeof(a));
(6)c编译对数组怎么处理扩展阅读:
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。
7. C语言的数组编译问题(急!)
#include "stdio.h"
main()
{ int a[10]={6,9,11,13,18,21,22,2,5,10};
int i,t,j,x=0;;
printf("the ten :");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("input a number:\n");
scanf("%d",&t) ;
for(i=0;i<10;i++)
{
if(t==a[i])//应该是等于而不是赋值
{for(j=i;j<10;j++)
a[j]=a[j+1];
x++;//表示删除元素的个数
}
}
for(i=0;i<10-x;i++)
printf("%3d",a[i]);
}
有问题联系
8. c语言中子函数对数组的操作
数组作为子函数形参的时候,是被当做指针处理的,也就是说
你这样写一个子函数
int a(int a[]) ;
等价于
int a(int *a) (其实编译器是这么处理的)你可以看汇编代码!
9. C语言如何对数组中的数据进行处理
类似下面简单处理下
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
charrecord[100][5][16];
intcnt=0;
#defineIS_ALPHA(a)((a>='a'&&a<='z')||(a>='A'&&a<='Z')||(a>='0'&&a<='9')||(a=='_'))
char*get_record(char*str){
inti=0,j=0;
if(cnt>=100)returnNULL;
while(1){
if(IS_ALPHA(*str)){
if(j<15)
record[cnt][i][j++]=*str;
}
else{
if(j){
record[cnt][i][j++]=0;
j=0;
i++;
}
if(*str==0||i==5)break;
}
str++;
}
//addornot
if(i==5){
intn=cnt;
for(i=0;i<cnt;i++){
if(strcmp(record[i][0],record[cnt][0])==0&&
strcmp(record[i][1],record[cnt][1])==0){
if(atoi(record[i][4])<atoi(record[cnt][4])){
strcpy(record[i][4],record[cnt][4]);
}
n--;
break;
}
}
cnt=n+1;
}
return(*str?str:NULL);
}
voidprint_record(){
inti;
for(i=0;i<cnt;i++){
printf("%s%s%s%s%s ",
record[i][0],record[i][1],record[i][2],record[i][3],record[i][4]);
}
}
intmain(){
charstr[]="
DN100CDN_100123
DN100CDN_200216
DN100CDN_100106
DN100CDN_300106
DN100CDN_300107
DN100CDN_200218";
char*s=str;
while(s=get_record(s)){}
print_record();
return0;
}
10. C 编译器对数组是如何处理的
我记得是在栈区连续分配数组大小的内存