本文目錄一覽:
C語言a[100]什麼意思
!表示“非”,是一種邏輯運算。若a的真值為1,則!a為0;若a的真值為0,則!a為1。
拓展資料
邏輯運算是判斷命題是否成立的運算,一共有三種,即邏輯非,邏輯與,邏輯或。邏輯表達式結果值為int型,命題成立值為1,否則為0。
值得注意的是,C語言中,在邏輯判斷時,邏輯運算的操作數是0,被認為是假,操作數非0都認為是真,而不僅僅是1。三個邏輯運算符的真值表如下:
c語言中chat arr[100]是什麼意思?
這個意思就是說定義了一個字符型數組輸入名就是ar r,數組空間為一百。
C語言中的數組什麼意思?
所謂數組,是有序的元素序列。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數據元素的集合稱為數組。
比如油煙機的風扇轉速會和工作的模式之間有一定的關係,那麼我們就可以把它的工作模式和一維數組的下標對應起來,我們將具體的轉速放在數組中,這樣的話就非常方便我們在日後查詢。
再比如說家中的冷暖燈光控制這方面,色溫燈里會有兩個燈珠,分別對應的是冷光和暖光,選擇不同的模式燈光的顏色就不同,我們就可以將這兩種燈光的亮度pwm值事先放在二維數組中,以便調用調光。
在程序中合理地使用數組,會使程序的結構比較整齊,而且可以把較為複雜的運算,轉化成簡單的數組來表示。
擴展資料:
一、使用規則:
1、可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。
2、只能給元素逐個賦值,不能給數組整體賦值。
(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,數據庫是從1開始。)
3、若不給可初始化的數組賦初值,則全部元素均為0值。
4、假如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。
動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
二、表示方法:
數組元素是組成數組的基本單元。
數組元素也是一種變量, 其標識方法為數組名後跟一個下標。下標表示了元素在數組中的順序號。數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。
如為小數時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變量。必須先定義數組, 才能使用下標變量。在C語言中只能逐個地使用下標變量, 而不能一次引用整個數組。
參考資料:百度百科-數組
c語言中中括號是什麼意思int a[100]
該中括號為數組標識。
C語言支持定義一系列相同連續的變量空間,其定義形式為
type name[N];
代表定義個數為N,每個元素類型均為type型的數組變量name。
int a[100]就是定義一個元素個數為100個的整型數組a。
對於a中元素的調用同樣是通過中括號對來實現的,當調用a[n]時,代表第n個元素。
需要注意的是,在C中規定,數組元素的下標n是從0開始計數的,所以對於定義的a[100], 其合法的元素為a[0], a[1], … , a[99]。
C語言中的數組是什麼意思?
把具有相同數據類型的若干變量按有序的形式組織起來,
以便於程序處理,這些數據元素的集合就是數組,按照數組
元素的類型不同,可分為:數值數組、字符數組、指針數組
結構數組等各種類別。
數組說明的一般形式為:
類型說明符 數組名[常量表達式],……;
其中類型說明符可以是任一種基本數據類型或構造數據類型
數組名是定義的數組標識符。常量表達式表示數據元素的個
數,也就是數組的長度。
對數組類型的說明應注意:
1)數組的類型實際上是數組元素的取值類型。
2)數組名的書寫應符合標識符的書寫規範。
3)數組名不能與其他變量名相同。
4)常量表達式表示數組元素的個數,但是其下標從0開始計算
5)不能在方括號中用變量來表示元素的個數,但是可以用符號
常數或常量表達式。
6)允許在同一個類型說明中,說明多個數組和多個變量。
數組元素的表示方法
一般比較簡單就是數組名[下標]來引用,先定義後用,如果
是小數的話,直接自動取整。
數組賦值分為:初始化賦值和動態賦值
初始化賦值一般形式為:
static 類型說明符 數組名[常量表達式]={值,值……};
static表示靜態存儲類型,c語言規定只有靜態存儲數組和外部數組
才可做初始化賦值。
c語言對數組的初始化賦值還有幾個規定:
1)可以只給部分元素賦值。
2)只能給元素逐個賦值,不能給數組整體賦值。
3)如不給可初始化的數組賦初值,在在數組說明中,可以不給出數組
元素的個數。
下面看一下多維數組
主要看一下二維數組,其他的就可以用二維數組類推得到
二維數組的類型說明的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]…;
在c語言中二維數組是按行排列的
二維數組的表示方法:
數組名[下標][下標]
二維數組的初始化
二維數組初始化也是在類型說明時給各下標變量賦以初值。 二維數組可
按行分段賦值,也可按行連續賦值。
二維數組的初始化還應該注意:
1)可以只對部分元素賦初值,未賦初值的元素自動取為0。
2)如對全部元素賦初值,則第一維的長度可以不給出。
字符數組:
用來存放字符變量的數組稱為字符數組。
C語言允許用字符串的方式對數組作初始化賦值。例如:
static char c[]={‘c’, ‘ ‘,’p’,’r’,’o’,’g’,’r’,’a’,’m’}; 可寫為:
static char c[]={“C program”}; 或去掉{}寫為:
sratic char c[]=”C program”;
用字符串方式賦值比用字符逐個賦值要多佔一個字節, 用於存放字符串結
束標誌’\0’。上面的數組c在內存中的實際存放情況為: C program\0`\0’是
由C編譯系統自動加上的。由於採用了`\0’標誌,所以在用字符串賦初值時一
般無須指定數組的長度, 而由系統自行處理。在採用字符串方式後,字符數
組的輸入輸出將變得簡單方便。 除了上述用字符串賦初值的辦法外,還可用
printf函數和scanf函數一次性輸出輸入一個字符數組中的字符串, 而不必
使用循環語句逐個地輸入輸出每個字符。
void main()
{
static char c[]=”BASIC\ndBASE”;
printf(“%s\n”,c);
} printf(“%s\n”,c);
注意在本例的printf函數中,使用的格式字符串為”%s”, 表示輸出的是一
個字符串。而在輸出表列中給出數組名則可。 不能寫為: printf(“%s”,c[]);
void main()
{
char st[15];
printf(“input string:\n”);
scanf(“%s”,st);
printf(“%s\n”,st);
} char st[15];
本例中由於定義數組長度為15, 因此輸入的字符串長度必須小於15,
以留出一個字節用於存放字符串結束標誌`\0`。 應該說明的是,對一個字
符數組,如果不作初始化賦值,則必須說明數組長度。還應該特別注意的是,
當用scanf函數輸入字符串時,字符串中不能含有空格,否則將以空格作為串
的結束符。例如運行例4.8,當輸入的字符串中含有空格時,運行情況為:
input string:this is a book this 從輸出結果可以看出空格以後的字符
都未能輸出。 為了避免這種情況, 可多設幾個字符數組分段存放含空格的
串。程序可改寫如下:
Lesson
void main()
{
char st1[6],st2[6],st3[6],st4[6];
printf(“input string:\n”);
scanf(“%s%s%s%s”,st1,st2,st3,st4);
printf(“%s %s %s %s\n”,st1,st2,st3,st4);
}
本程序分別設了四個數組, 輸入的一行字符的空格分段分別裝入四個數組。
然後分別輸出這四個數組中的字符串。在前面介紹過,scanf的各輸入項必須以
地址方式出現,如 a,b等。但在例4.8中卻是以數組名方式出現的,這是為
什麼呢?這是由於在C語言中規定,數組名就代表了該數組的首地址。 整個
數組是以首地址開頭的一塊連續的內存單元。如有字符數組char c[10],在
內存可表示如圖4.2。設數組c的首地址為2000,也就是說c[0]單元地址為2000。
則數組名c就代表這個首地址。因此在c前面不能再加地址運算符。如寫作
scanf(“%s”,c);則是錯誤的。 在執行函數printf(“%s”,c) 時,按數組名c
找到首地址,然後逐個輸出數組中各個字符直到遇到字符串終止標誌’\0’為止。
字符串常用函數:
用於輸入輸出的字符串函數在使用前應包含頭文件”stdio.h”,使用其他字符串
函數則應包含頭文件”string.h”.下面介紹幾個常用的字符串函數:
1)字符串輸出函數 puts 格式:puts(字符數組名) 功能:把字符數組中的字符
串輸出到顯示器。
#include”stdio.h”
main()
{
static char c[]=”BASIC\ndBASE”;
puts(c);
}
2)字符串輸入函數gets 格式:gets(字符數組名) 功能:從標準輸入設備上
輸入一個字符串。
#include”stdio.h”
main()
{
char st[15];
printf(“input string:\n”);
gets;
puts;
}
tips:gets函數並不以空格作為字符串輸入結束的標誌,而只是以回車作為輸入
結束,這是與scanf不同的部分
3)字符串連接函數strcat 格式:strcat(字符數組名1,字符數組名2)
功能:把字符數組2中的字符串連接到字符數組1中字符串後面,並刪去字符串
1後的串標誌”\0″,本函數返回字符數組1的首地址。
#include”string.h”
main()
{
static char st1[30]=”My name is “;
int st2[10];
printf(“input your name:\n”);
gets(st2);
strcat(st1,st2);
puts(st1);
}
4)字符串拷貝函數strcpy 格式:strcpy(字符數組名1,字符數組名2)
功能:把字符數組2中的字符串拷貝到字符數組1中,串結束標誌 “\0″也一同
拷貝,字符數組2也可以是一個字符常量,就相當於把一個字符串賦予一個字符數組
#include”string.h”
main()
{
static char st1[15],st2[]=”C Language”;
strcpy(st1,st2);
puts(st1);
printf(“\n”);
}
5)字符串比較函數strcmp格式:strcmp(字符數組1,字符數組2) 功能:
按照ASCII碼順序比較兩個數組中的字符串,並有函數返回值返回比較結果
#include”string.h”
main()
{
int k;
static char st1[15],st2[]=”C Language”;
printf(“input a string:\n”);
gets(st1);
k=strcmp(st1,st2);
if(k==0) printf(“st1=st2\n”);
if(k0) printf(“st1st2\n”);
if(k0) printf(“st1st2\n”);
}
6)測字符串長度的函數strlen 格式:strlen(字符數組名) 功能:
測字符串的實際長度(不含字符串結束標誌”\0″)並作為函數返回值
#include”string.h”
main()
{
int k;
static char st[]=”C Language”;
k=strlen;
printf(“The lenth of the string is %d\n”,k);
}
程序舉例:
例一:
main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i10;i++)
{
p=i;q=a[i];
for(j=i+1;j10;j++)
if(qa[j]) {p=j;q=a[j];}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf(“%d”,a[i]);
}
printf(“\ninput number:\n”);
scanf(“%d”,n);
for(i=0;i10;i++)
if(na[i])
{for(s=9;s=i;s–) a[s+1]=a[s];brbreak;}
a[i]=n;
for(i=0;i10;i++)
printf(“%d”,a[i]);
printf(“\n”);
}
例二:
main()
{
static int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};
int b[3],i,j,l;
for(i=0;i=2;i++)
{
l=a[i][0];
for(j=1;j=3;j++)
if(a[i][j]l) l=a[i][j];
b[i]=l;
}
printf(“\narray a:\n”);
for(i=0;i=2;i++)
{
for(j=0;j=3;j++)
printf(“%5d”,a[i][j]);
printf(“\n”);
}
printf(“\narray b:\n”);
for(i=0;i3;i++)
printf(“%5d”,b[i]);
printf(“\n”);
}
例三:
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf(“input country’s name:\n”);
for(i=0;i5;i++)
gets(cs[i]);
printf(“\n”);
for(i=0;i5;i++)
{
p=i;strcpy(st,cs[i]);
for(j=i+1;j5;j++)
if(strcmp(cs[j],st)0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{strcpy(st,cs[i]);brstrcpy(cs[i],cs[p]);brstrcpy(cs[p],st);br}
puts(cs[i]);
printf(“\n”);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150466.html