[問題] 動態陣列輸入某臨界值會main.exe停止運作
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Win7的Codeblocks
問題(Question):
給一個整數,列出範圍內的質數,然後計算質數的個數
使用動態陣列的寫法
很神奇的是
n如果輸入在22和以內,正常
但n如果超過22,即23、24...
雖然也可以正確執行
但就是會多跑出一個「main.exe已經停止運作」的提示訊息
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,j,k;
int count=0;
printf("請輸入一個整數:");
scanf("%d", &n);
printf("\n");
int *array; // 設定陣列型態。
array =(int*)malloc(count*sizeof(int));// 配置一維陣列
for(i=2; i<=n; i++)
{
for(j=2; j<=sqrt(i); j++)
{
if(i%j==0)
break;
}
if(j==(floor(sqrt(i))+1))
{
array[count]=i;
count++;
}
}
printf("從1到%d之間的質數有:\n",n);
for(k=0; k<count; k++)
printf("%d ",*(array+k));
printf("\n\n");
printf("質數共有%d個\n",count);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.106.192
推
01/24 03:51, , 1F
01/24 03:51, 1F
推
01/24 04:34, , 2F
01/24 04:34, 2F
→
01/24 12:46, , 3F
01/24 12:46, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章