[英]Transfer from one array to another
我有一個循環來檢查傳遞參數可以被哪些數字整除。 所有符合此條件的數字都將存儲在另一個數組中。 我該如何設置?
#include <stdio.h>
void primfaktorzerlegung(int * zahl, int * ausgabe){
int array_primzahlen[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int length = sizeof(array_primzahlen)/sizeof(int);
int i = 0;
int j = 0;
for(int k = 0; k<*zahl; k++){
for( i = length; i>=0; i--){
if(*zahl % array_primzahlen[i] == 0){
*(ausgabe + j) = array_primzahlen[i];
j++;
*zahl = *zahl / array_primzahlen[i];
}
if(*zahl == 2){
*(ausgabe + j) = array_primzahlen[i];
}
}
}
}
int main(void)
{
int ausgabe[10];
int zahl = 8;
primfaktorzerlegung(&zahl, ausgabe);
for(int i = 0; i<10; i++){
printf("%d, ", ausgabe[i]);
}
return 0;
}
這是我目前的狀態。 “數字” 8 將被分解為其素數,即:2, 2, 2 這也有效,但數組中也存儲了完全不同的數字:
2, 2, 2, 21883, 0, 0, -1385004928, 21883, 738867344, 32765
也許是這樣的:
void primfaktorzerlegung(int zahl, int * ausgabe){
int array_primzahlen[] =
{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int length = sizeof(array_primzahlen)/sizeof(int);
int i = 0;
int j = 0;
for( i = length; i>=0; i--){
if(zahl % array_primzahlen[i] == 0){
/*Here should be the transfer*/
*(ausgabe + j) = array_primzahlen[i];
j++;
}
}
}
我不知道您是否希望以相反的順序存儲數字。 在這種情況下,您可以在之后反轉數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.