ページ 11

素数を配列に読み込みたい

Posted: 2011年11月18日(金) 18:24
by 田中
10000以下の素数をprintfを使って書き出すプログラムを作ったのですが、今度はその素数を配列に読み込みたいです(scanfで入力してもらうのではなく)。
c言語初心者で自分なりにいろいろやってみたのですが分かりません。お願いします。

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 18:43
by ぬっち
そこまでできているのでしたら、後は配列に代入していけばよいのでは?
それとも読み込むというのは、素数の書かれたファイルからということでしょうか?

もう少し情報をいただけると助かります。

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 18:51
by 初級者
配列に読み込む、ということが何を意味するのか、よくわかりません。

配列から読み込む
配列に書き込む
ならば、わかります。

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 19:00
by 田中
for(i=1;i<=10000;i++){
a=0;
for(j=1;j<=i;j++){
if(i%j==0)
a++;
}
if(a==2)
i=sosuu[k];
k++;
}


これでsosuuという配列に読み込めていますか?

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 19:06
by bitter_fox
田中 さんが書きました:10000以下の素数をprintfを使って書き出すプログラムを作ったのですが、今度はその素数を配列に読み込みたいです(scanfで入力してもらうのではなく)。
c言語初心者で自分なりにいろいろやってみたのですが分かりません。お願いします。
では、10000以下の素数をprintfを使って書き出すプログラムをベースに書き換えたらどうでしょうか?

そのためにはまず10000以下の素数をprintfを使って書き出すプログラムのソースをここに掲示してください。

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 19:10
by beatle
ソースコードは code タグで囲みましょう。
今回は代わりに僕が整形しておきますが、次回からはご自分で整形してください。

コード:

for(i=1;i<=10000;i++){
	a=0;
	for(j=1;j<=i;j++){
		if(i%j==0)
			a++;
	}
	if(a==2) 
		i=sosuu[k];
	k++;
}
さて、i=sosuu[k];という文はどんな動作でしょうか。iの値をsosuu[k]に書きこむのか、sosuu[k]の値をiに書きこむのか。どっちだと思いますか?

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 19:22
by 田中
>>bitter_foxさん

コード:

#include <stdio.h>

int main()
{
  int i,j,a,sosuu[10000];

for(i=1;i<=10000;i++){
     a=0;
for(j=1;j<=i;j++){
  if(i%j==0)
     a++;
}
if(a==2) 
  printf("%d ",i);
}}
何度もすみません。
これで素数を表示しました。


>>beatleさん

sosuuにiの値を入れていったつもりだったんですけど・・・

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 19:39
by bitter_fox
田中 さんが書きました: sosuuにiの値を入れていったつもりだったんですけど・・・

コード:

for(i=1;i<=10000;i++){
    a=0;
    if(a==2) 
        i=sosuu[k];
    k++;
}
もしそうだとするとa = 0;は0にaの値を代入することになってしまいますね。

あと、k++が実行されるのはいつでしょうか?
それから、kはちゃんと初期化してありますよね?

Re: 素数を配列に読み込みたい

Posted: 2011年11月18日(金) 20:01
by 田中
間違いに気づきました。
出来ました!ありがとうございました。><