我看了上面幾個寫給妳的程序,有些邏輯較亂,而且思路不清。最主要是在電腦運行的結果不對,或則是根本無法通過編譯。所以給樓主寫了個,用VC寫的,在VC上運行完全正確,能夠達到樓主相應的效果。
由於是自己的思路,擔心樓主不理解,所以在後面都加了註釋,可以幫組樓主讀懂我的程序。
程序如下:
#include <stdio.h>
void main()
{
int n,k;
printf("input the n:"); /*輸入n的值*/
scanf("%d",&n);
printf("input the k:"); /*輸入K的值*/
scanf("%d",&k);
int i,count=0; /*用count來實現計質數的個數*/
do
{
flag: n=n+1;
if(n<2) /*如果n<2就都不是質數,繼續下壹次循環*/
continue;
else if(n==2) /*n=2,就輸出2,因為2是質數*/
{
count++;
printf("第%d個質數是%d:\n",count,n);
continue;
}
else
{
for(i=2;i<n;i++) /*判斷是否從2到這個數本生有沒有約束*/
{
if(n%i==0)
goto flag; /*如果有約束,跳出次else語句,去執行開頭*/
}
count++; /*如果在for循環中沒有約束,則數出count加1,數出這個數*/
printf("第%d個質數是%d:\n",count,n);
}
}
while(count!=k); /*當質數的個數等於k時,跳出do循環,結束程序*/
}
樓主可以去VC上檢驗,如果沒有vc,tc應該也可以通過我的這個程序吧!
檢驗正確後,請回復哦!也是對我的鼓勵的...
嘿嘿