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 編譯器對數組是如何處理的
我記得是在棧區連續分配數組大小的內存