宿題で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: プログラムのまちがいを教えてください
プログラムは全く見ていませんが、parse error at end of input は、{や(の数が合ってないとか、セミコロンの付け忘れとか、
””が対応していないとかです。わからなければ、codeタグを使って、インデントしたプログラムを添付してください。
””が対応していないとかです。わからなければ、codeタグを使って、インデントしたプログラムを添付してください。
non
Re: プログラムのまちがいを教えてください
「何が」いくつあるかを数えようとしているんでしょうか。何がしたいかを伝えるには、主語を明記する必要があります。PC駄目男 さんが書きました: エラトステネスの篩を使って1000万までにいくつあるかを数える
まあ、仮に素数のことだとして、変数 sum の意味合いは何でしょうか。ぜひ知りたいので教えてください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: プログラムのまちがいを教えてください
a = malloc(sizeof (int) * 10000000);
で
for(i=2;i<=10000000;i++)
{
a=i;
}
も良くないですぞ。
で
for(i=2;i<=10000000;i++)
{
a=i;
}
も良くないですぞ。