English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

把質數依序填入10x10的陣列A中
由左到右填入 由2開始
若學號為 a b c d e f g
則求出 A[a][b],A[c][d],A[e][f],A[g][h]

就是在10x10的方格子中填入質數(填滿為止)由2開始填
如果A[1][2] 就會輸出方格子中的橫縱列的數字出來。
a b c d e f g →可以自行設自。

PS 如果還有任何不懂的話,可以說出來,我會再補充。

2007-06-05 17:19:46 · 3 個解答 · 發問者 建銘 1 in 電腦與網際網路 程式設計

請問如果答案上面在多加一個10x10的質數表呢?這樣可以嗎?
一樣由2開始,一直到填滿為止。

2007-06-06 12:17:19 · update #1

那可以請大大幫我上面加一個質數表嗎?
還有綿羊大大 您的g跟h的輸出好像怪怪的
可以麻煩你在看一下嗎@@?
謝謝你喔!!^ ^a

2007-06-06 17:18:45 · update #2

綿羊大大,下面那個質數表要放在哪裡 = =?
謝謝你喔。。

2007-06-07 13:17:28 · update #3

阿。。忘了一點,綿羊大大,你的g好像怪怪的
我出入的是7,可是他輸出的結果卻不是7
請問這是發生什麼問題嗎??
麻煩一下喔。。謝謝

2007-06-07 13:19:43 · update #4

可不可以把質數表加上去
再做一次程式碼呢?
我笨笨的。。
真的看不懂>"<
不好意思

2007-06-09 11:06:52 · update #5

不能分開PO嗎?
如果不能那就算了沒關係
也麻煩你很多了
真的辛苦你了
謝謝你喔

2007-06-09 16:06:31 · update #6

3 個解答

//Power by Visual Studio 2005
#include
#include
#include
using namespace std;
bool isPrime(double number)
{
bool retBoolean=true;
for(int i=2;i<=(int)sqrt(number);i++)
if(((int)number%i)==0)
{
retBoolean=false;
break;
}
return retBoolean;
}
int main(int argc, char** argv)
{
//==========START==========//
int A[10][10],number=2,id,temp,a,b,c,d,e,f,g,h;
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
while(!isPrime(number))
number++;
A[i][j]=number++;
}
}
cout<<"Input 8 bits ID: ",cin>>id,temp=id;
a=temp/(int)pow(10.0, 7.0),temp%=(int)pow(10.0, 7.0);
b=temp/(int)pow(10.0, 6.0),temp%=(int)pow(10.0, 6.0);
c=temp/(int)pow(10.0, 5.0),temp%=(int)pow(10.0, 5.0);
d=temp/(int)pow(10.0, 4.0),temp%=(int)pow(10.0, 4.0);
e=temp/(int)pow(10.0, 3.0),temp%=(int)pow(10.0, 3.0);
f=temp/(int)pow(10.0, 2.0),temp%=(int)pow(10.0, 2.0);
g=temp/(int)pow(10.0, 1.0),temp%=(int)pow(10.0, 1.0);
h=temp;
cout<<"A["< cout<<"A["< cout<<"A["< cout<<"A["< //==========END==========//
system("PAUSE");
return EXIT_SUCCESS;
}

2007-06-06 17:50:36 補充:
當然可以放質數表

2007-06-07 16:42:06 補充:
=質數表=

for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
cout<<" "< }
cout< }

2007-06-08 10:35:56 補充:
輸入一個 8 位數的數值,每個數之間不可有空格。

2007-06-09 16:39:19 補充:
奇摩的補充內容有限制字數,根本無法放那麼多程式碼,所以你當初一開始提問題時,就應該寫清楚問題。

2007-06-05 18:22:44 · answer #1 · answered by Big_John-tw 7 · 0 0

●九州 娛樂 網站 http://ts777.cc
●●●運彩遊戲、真人遊戲、電子遊戲、對戰遊戲、對戰遊戲●●●

●新舊會員儲值就送500點

● 真人百家樂彩金等你拿

●線上影片直播、正妹圖、討論區免費註冊

歡迎免費體驗交流試玩!

●九州 娛樂 網站 http://ts777.cc

2015-04-23 21:59:22 · answer #2 · answered by ? 1 · 0 0

首先質數就是
bool isPrime(int val)
{
 if(val<2)return false;
 for(int i=2; i   if(val%i==0)return false;
 return true;
}

生出質數並且填入陣列
int** getPrime(int** a,int row,int col)
{
 int prime = 0;
 for(int iRow=0; iRow   for(int iCol=0; iCol    while(isPrime(++prime))
    a[iRow][iCol++]=prime;
 return a;
}

產生二維陣列
int** Alloc(int row,int col)
{
 int** a=(int**)malloc(row*sizeof(int*));
 for(int i=0; i   a[i]=(int*)malloc(col*sizeof(int));
 return a;
}

那麼
在取得質數陣列部分就是
int **a = Alloc(10,10);
a = getPrime(a,10,10);

這樣懂嗎
質數是頗不錯的題目

2007-06-05 22:08:34 補充:
複製到撰寫區的時候記得把前面的空白去掉
改成空白鍵
因為我用全型空白來這邊排版
如果要輸出縱橫列的數字呀--
那就是
void show(int** a,int row,int col)
{
 for(int iRow=0; iRow   for(int iCol=0; iCol    if(iRow==row)
    printf("%d",a[iRow][iCol]);
   else
    printf("%d",a[iRow][col]);
}

2007-06-05 22:39:00 補充:
show的式子寫錯了
void show(int** a,int maxRow,int maxCol,int row,int col)
{
 for(int iRow=0; iRow   for(int iCol=0; iCol    if(iRow==row||iCol==col)
    printf("%d ",a[iRow][iCol]);
}

最後就是 show(a,10,10,某列,某行);

2007-06-06 20:12:41 補充:
當然可以顯示質數表呀
質數表先被生出來了,後面要怎麼顯示都可以

2007-06-05 17:54:04 · answer #3 · answered by 艾斯寇德 2 · 0 0

fedest.com, questions and answers