[英]Cannot convert from int to int**
我編寫了一個程序,它必須計算 1 - 20 的所有主要演員並將其存儲在二維數組中。 但我不明白為什么因素不存儲值,
#include <stdio.h>
#include <stdlib.h>
int prime_check(int number, int **p);
int
main(void)
{
int **factor;
factor = (int **) malloc(21 * sizeof(int *));
for (int j = 0; j <= 20; j++)
factor[j] = (int *) malloc(8 * sizeof(int));
for (int number = 2; number <= 20; number++) {
prime_check(number, factor);
}
printf("%d", factor[4][4]); /* Main Function Ends */
}
int
prime_check(int number, int **p)
{
int pos = 0;
int test = number;
while (!(number % 2)) {
p[test][pos] = 2;
pos++;
number = number / 2;
}
for (int i = 3; i <= number; i++) {
while (number % i == 0) {
p[test][pos] = i;
pos++;
number = number / i;
}
}
return 0;
}
您的程序似乎正在運行。 它確實會產生重復的因素。
以下 function 將轉儲您的結果
void results(int rows, int cols, int** array)
{
for (int i = 0; i <= rows; i++)
{
printf( "%4d - ", i );
for (int j = 0; j <= cols; j++)
{
printf( "%2d ", array[i][j] );
}
printf("\n");
}
}
你可以把它稱為
results(20, 7, factor)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.