⑴ c語言判斷一個數組中的數都等於一個數然後退出循環
for(i=0;i<5;i++)
if(flag[i]!=1)break;
if(i==5)printf("allitemsare1 ");
elseprintf("not ");
把printf改成你要做的處理就可以了。
⑵ c語言,給一個不知道元素個數的數組的所有元素賦相同的值
可以利用系統函數memset(數組名,初值,sizeof(數組名));來整體賦相同的初值。
但是要注意:必須在程序開頭引入頭文件#include<memory.h>才可以使用系統中定義的memset函數。如同要使用sin()等數學函數時必須引入頭文件#include<cmath>一樣。
⑶ 一個關於C語言中二維數組的問題(如何判斷數組中的數全為1)
最直接的辦法就是調用函數,將該數組作為實參傳遞,
然後在函數中定義一個變數flag作為標記,用循環遍歷這個二維數組
如果數組元素為1則將flag置為1繼續掃描,否則置為0並退出循環
返回flag,flag為1則表示數組元素全為1,否則不全為1
⑷ C語言:求將一個數組全部賦值為一個非零的數字(別給我玩循環結構),要一個函數之類的
int 數組還真必須得用循環做
memset是位元組為單位的,不可能對二維數組初始化為非0值
如果是char數組則可以
所以,還是用循環吧,循環的效率未必比memset低,memset內部實現也是用循環做的,差不了多少
⑸ C語言中定義數組時對其全部初始化為1的問題
這寫法不對,C標准中這么寫只會初始化第1個元素,後面的全是默認值0,gcc編譯器支持c語言數組更靈活的初始化方式:
int a[10] =
{
[ 0 ... 9 ] = 1,
};
注意別的編譯器不一定支持,包括gcc編譯c++代碼也不支持這種寫法,只有gcc編譯c語言支持這種方式。
⑹ C語言中,如果我要將一個二維數組的所有元素全部初始化為1,我可以這樣做嗎
這樣當然不對。這樣的結果是只有SS[0][0]被附值為1。其他全是0。
想為數組附值酒葯用循環做。比如SS[m][n]
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
ss[i][j]=1; 這樣就給所有元素附值為1了;
⑺ 一個關於C語言中二維數組的問題(如何判斷數組中的數全為1)
1.
一維數組存放相同的值,但是如果是矩陣,行列式等類型的,用二維的就比較方便了.至於字元數組,只是說明它裡面存放的元素是字元而已.
2.
注意{{1},{2},{3}}裡面的1,2,3是有{}的,在本題中表示每一行中的第一個元素分別為1,2,3.剩下的元素如a[1[2],a[2][2]等就默認是0了.而b[3][3]={4,5,6}這只有一個{},把4,5,6都包進去了。,表示b[0][0],b[0][1],b[0][2]分別為4,5,6.剩下的都為0了.
3.
strcat(s1,s2)是將第二個字元串復制到第一個字元串後面,拼成一個字元串.復制完成後,函數會添加'\0',表示字元串的結束.所以執行完strcat(s1,s2)後實際結果為123abcde\0.用strlen取長度,自然就是8了
⑻ 如何將一個一維數組中的所有數都賦值為-1不用循環。
C語言還是C++;C++可以辦到。C語言不用循環估計不好辦。
C語言,如果是賦值為0,不用說,自然是可以的,只要寫TYPE x[100]={0};這樣就可以;這對任何類型都適用。
float a[100]={0};
int b[100]={0};
C語言,要賦值成-1的話,對於所有的整數類型([unsigned] char/int/short/long等)都是可以實現的,用memset就可以;非整數類型,如float和double就不行。
C語言,要賦值成1的話,只有char和unsigned char可以做到,用memset,其他類型我還想不出有啥方法。
C++的話,要依次賦值為{1,0,-1, 1,0,-1, 1, 0, -1 ...}這樣的,不用循環都可以辦到。
⑼ C語言如何讓二維字元數組全部被初始化為同一個值
1、要有這樣一個malloc產生的二維數組,或者用New產生的也行。
⑽ C語言中,如何讓兩個數組相等
x[2]是定義的時候用的,如果是用的時候是從x[0]開始,所以x[2]是個隨機數,再者,y[2]也是不存在的,所以你等於是沒給y這個數組里的任何一數賦值,兩個都是隨機數。