1樓:匿名使用者
首先,編寫一個「過濾器」函式:
/*以「把奇數放到另一個陣列」為例*/
int is_odd(int number)然後,編寫主函式:
/*返回符合條件的數的個數*/
size_t put_conditional(int * dest, /*目標陣列*/const int * source, /*原陣列*/size_t n, /*原陣列所含元素個數*/int (*filter)(int) /*「過濾器」函式指標,指向的函式當符合某條件時返回非零值,否則返回零*/
) return dest - start;
}呼叫的時候:
int a[10] = , b[10];
size_t i, n;
n = put_conditional(b, a, 10, is_odd); /*把a陣列中的奇數放到b陣列中*/
for (i = 0; i < n; i++)
2樓:匿名使用者
int num[20],num1[20],num2[20];
int i,j,k;
i=j=k=0;
//num存放所有資料,num1放偶數,num2放奇數輸入資料後
for(i=0;i<20;i++)
else }
這樣就分開了偶數和奇數,只要再分別排序就好了
3樓:匿名使用者
第一想法,肯定用迴圈做啊。
迴圈次數自己把握,因為我不知道是什麼具體的東西。用if()判斷所得的數是否符合條件。
如果符合條件,就在if()語句中將其存入陣列,類似於if(i % 5 == 0)
當然了,如果if中只有一句話,大括號是可以省略的。
大致上就是這樣了,不知道是不是你想要的答案。
4樓:喵不語
直接用if條件判斷啊!
c++怎麼把一個陣列裡符合條件的值賦到另一個陣列裡?
5樓:危曉靈
用for迴圈遍歷陣列,判斷每一項是否符合條件,符合就賦值給另一個陣列
6樓:重慶新華電腦學校
進行陣列遍歷,然後判斷,然後把符合條件值加入到另一個陣列中即可。
c語言如何把輸入進去的數放到陣列中
7樓:匿名使用者
include
void main()
int a[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
sacnf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
8樓:風若遠去何人留
有兩種方式:
1 先輸入數值,在存放在陣列的對應位置中,即賦值給對應元素。
如scanf("%d",&i);
a[k] = i;
就是先輸入到變數i中,然後把i儲存在a的第k個元素中。
2 直接輸入到陣列對應元素中。
如scanf("%d",&a[k]);
與1中的例子是相同效果,只是減少了中間變數的使用。
c語言中怎麼把一維陣列賦給另外一個一維陣列
9樓:勵光解芷容
不可以,之所以不可以是因為陣列名是個常量,它的值是陣列首元素地址,即不能將其它值付給這個常量。
可以採用迴圈的方法逐個複製,或者採用另一個同型別的指標(相對於陣列名,指標是變數)指向要複製的陣列,之後就可以採用這個指標訪問之前的那個陣列
10樓:武冰業雁菡
void
main()
;int
b[10];int
i;for(i=0;a[i]!=0;i++)b[i]=a[i];
}如果a[10]=b[10]
那麼僅僅賦了b{}陣列的第11個元素給a陣列的第十一個元素,沒法一次性全部賦給.樓下那個方法也不錯.
11樓:宿唱校流婉
這樣只是陣列b第11個元素賦值給陣列a第11個元素可以這樣
n為你要從陣列b賦值到陣列a的個數
for(i=n;i>=0;i--)
a[i]=b[i];
12樓:長映諫瑩
定義a[4]為一個4列的二維陣列後,a[2]是*(a+2),這裡a是一個指向4個整型的陣列指標;
a[2]也可以理解為&a[2][0],因為陣列a其實只定義了一行,所以&a[2][0]已經越界了,不過在c語言中越界訪問是不會報錯的,所以a[2][0]的地址比a[0][0]的地址偏移了2行,也就是8個整型,也是32個位元組。這樣理解為&a[0][0]+32也可
13樓:宣果彤春
不可以,只能挨個將b
裡面的值賦值到a裡面
inti;
for(i=0;i<(sizeof(b)/sizeof(int);i++)
不過如果你保證了a和b大小一致的話,也可以偷懶memcpy(a,
b,sizeof(b));
在c語言中,將一個數插入一個陣列中的程式怎麼寫?
14樓:
有一個已排好序(從大到小)的陣列有5個元素,從鍵盤輸入一個數,要求按原排序的規律將它插入到陣列中
<5;i++) if(x2.j=i; /*當這個數比當前數小時,用j記住當前位置,即j=i,中斷迴圈。
比當前數大時繼續下一個(小應當在左側,大則在右側) */
3.break; for(i=5;i>=j;i--)
a[i+1]=a[i]; /*將位置j以後的資料都向後移一位*/ a[i+1]=x; /*
4. 把要插入的數x放到a[i]中,因為i--後 i 比實際要插入的位置少1,所以真正插入的位置應該i+1*/
5.for(i=0;i<=5;i++) /*這時一共有6個數* printf("%d ",a[i]);
15樓:
你可以先定義一個陣列和一個變數,然後把這個變數寫入陣列,比如int x,i,a[10];
for(i=0;i<=9;i++)
a[i]=x;
這樣程式執行後,陣列a[10]的內容依次插入了裡面。
16樓:我行我素
#include
void main()
;int n;
printf("請輸入需要插入到陣列中的位置:");
scanf("%d",&n); //比如說插入到第三個位置,即s[2]中,則輸入3
int num;
printf("請輸入需要插入的數:");
scanf("%d",&num);
for (int i=10-1;i>=n;i--)s[i]=num;
printf("插入之後的陣列:\n");
for (i=0;i<10;i++)
printf("\n");}
c語言,如何將數字新增到一個已有的字元陣列中?
17樓:
陣列要實時新增數字進去有點麻煩,如果是空陣列就一個for迴圈按順序輸入就行了。如果是想把一個數字插入某個位置,那用一個變數temp記錄插入的位置,先在原來的陣列temp位置開始的數全部先後移一位,然後再a = waiting[temp];(a是你想插入的數字)
18樓:匿名使用者
不能吧,你定義的時候不是a[n]嗎,這個n是固定的,你要多少系統就給你多少空間,給定之後是不能再改的,c就是這樣,別的語言可以。(用連結串列可以)
c語言中怎麼把一個陣列的值賦到另一個陣列中
19樓:艾瓏庫芳林
不可以a指的是a陣列的第11個元素,同樣b也一樣,你這樣寫只能夠把b的第11個元素值賦給a的第十一個元素
求採納為滿意回答。
c語言中如何將一個字串陣列裡的字串寫入另一個陣列中
20樓:天涯中仰望
用函式 stract(字串1,字串2)
就是把字串2接到字串1的後面
21樓:匿名使用者
#include
strcpy(目標陣列,源陣列);
例如目標陣列 char target[20]//記得保證目標陣列足夠大,否則會崩潰
源陣列 char source = "abcdef"
strcpy(target,source);
22樓:匿名使用者
這類問題要考慮一下安全性,陣列的邊界溢位。
最好使用庫函式,不要用strcpy,用strncpy。
#include
strncpy(目標陣列,原陣列,sizeof(目標陣列));
23樓:匿名使用者
#include
strcpy(目標陣列, 原陣列);
24樓:
int i;
int a[max],b[max];
for(i=0;i b[i]=a[i]; 這是陣列a寫入b中 25樓: int i; static int j=0; char a[max],b[max]; for(i=0;i if(a[i]==" ")} c語言貌似沒有把陣列清空的方法啊,或許你可以清除就把它賦值為0,這樣在形式上實現了清楚,不然的話只有動態申請的記憶體可以釋放。int a 4 1 通過陣列遍歷,逐個賦值為0。定義迴圈變數int i for i 0 i 4 i a i 0 該程式功能為遍歷陣列a,逐個將元素賦值為0,實現清空效果。有兩... c取餘 或取模 運算左右值的型別必須是整型x 5.0 2.5 x 2 x 3.12 x 0 if c c 這些都合法,所以不一定要求是整數。在c語言中,要求運算數必須是整型的運算子是 選擇d。復 是求餘運算子,也叫模除運制算符,用於求餘數。要求兩個運算元均為整數 或可以隱式轉換成整數的型別 標準規定... 首先。scanf d s n 不知道你想表達什麼,我理解成輸入n.那麼就這樣。scanf d n 其次。你在scanf後面呼叫gets會產生輸入流被佔用的問題。所以要在gets前加入。fflush stdin 再次。也是最重要的一點!你的p和s都沒初始化,僅僅是一個空指標,沒有分配任何記憶體空間,如...在c語言中如何把陣列清空,在C語言中如何把陣列清空
C 語言中,要求參加運算的數必須是整數的運算子號是ABCD
C語言簡單的迴文,C語言中,什麼是迴文數