ページ 11

プログラムのまちがいを教えてください

Posted: 2011年7月26日(火) 18:21
by PC駄目男
宿題でC言語でエラトステネスの篩を使って1000万までにいくつあるかを数えるソースプログラムを作成してるのですが、エラーが出て進めることができません。
ソースプログラムは
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
int *a,sum,i;
int main(){

a = malloc(sizeof (int) * 10000000);


for(i=2;i<=10000000;i++){

a=i;

}
for(i=2;i<=10000000;i++){
if(a!=2&&a%2==0)
a=0;
else if(a!=3&&a%3==0)
a=0;
else if(a!=5&&a%5==0)
a=0;
else if(a[i]!=7&&a[i]%7==0)
a[i]=0;

}

for(i=2;i<=10000000;i++){
if(a[i]!=1&&a[i]!=0){
sum+=a[i];


printf("%d",sum);

return 0;
}
}
です。
エラーメッセージは
In fuction `main’:
error: parse error at end of input
です。
どこを直せばいいかおしえてください。

Re: プログラムのまちがいを教えてください

Posted: 2011年7月26日(火) 18:29
by non
プログラムは全く見ていませんが、parse error at end of input は、{や(の数が合ってないとか、セミコロンの付け忘れとか、
””が対応していないとかです。わからなければ、codeタグを使って、インデントしたプログラムを添付してください。

Re: プログラムのまちがいを教えてください

Posted: 2011年7月26日(火) 20:16
by yux
}が1つ足りませんね。
最後に1つ"}"を追加してください。

Re: プログラムのまちがいを教えてください

Posted: 2011年7月26日(火) 21:33
by box
PC駄目男 さんが書きました: エラトステネスの篩を使って1000万までにいくつあるかを数える
「何が」いくつあるかを数えようとしているんでしょうか。何がしたいかを伝えるには、主語を明記する必要があります。
まあ、仮に素数のことだとして、変数 sum の意味合いは何でしょうか。ぜひ知りたいので教えてください。

Re: プログラムのまちがいを教えてください

Posted: 2011年7月27日(水) 07:55
by さかまき
a = malloc(sizeof (int) * 10000000);


for(i=2;i<=10000000;i++)
{
a=i;
}
も良くないですぞ。