ページ 11

指摘をお願いします

Posted: 2011年1月23日(日) 10:46
by
エラーが出るのですが、どのように改善したらよいかわかりません。
ご指導お願いします。

コード:

 #include<stdio.h>
#include<math.h>
#define MAX 1000

 
void main(void){
    int i;
    double x[MAX],y[MAX];
    double t,dt;
    double v0x,v0y,g,e1,e2,x0,y0,x00,v0;
     
     
    scanf("%lf",&v0x);
    scanf("%lf",&v0y);
    scanf("%lf",&g);
    scanf("%lf",&x0);
    scanf("%lf",&y0);
    scanf("%lf",&e1);
    scanf("%lf",&e2);
     
     
    FILE *fp;
    dt=0.01;
    fp=fopen("kekka.csv","w");
     
   
                     
    for(i=0;i<x0/v0x/dt;i++){
        t=i*dt;
        x[i]=-v0x*t+x0;
		
    fprintf(fp,"%f,%f\n",x[i],y0);//ここにエラーが出ます。
		
    }
                      
    for(i=0;i<sqrt(2*y0/g);i++){ 
	t=i*dt;
        x[i]=e1*v0x*t;             
        y[i]=y0-(g*t*t)/2;  
        fprintf(fp,"%f,%f\n",x[i],y[i]);
    }
     
     
    x00=e1*v0x* sqrt(2*v0/g);
    while(v0y>0.1){
            for(i=0;i<2*v0y/g/dt;i++){
                t=i*dt;
                x[i]=x00+v0x*t;
                y[i]=v0y*t-g*t*t/2;
                fprintf(fp,"%f,%f\n",x[i],y[i]);
            }
            x00=x0+2*v0x*v0y/g;
            v0y=e2*v0y;
        }
     
     
    fclose(fp);
} 


(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C2065: '   ' : 定義されていない識別子です。
(32) : error C2146: 構文エラー : ';' が、識別子 'fprintf' の前に必要です。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 10:58
by h2so5
全角スペースがどこかに入っています

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 11:00
by
ありがとうございます。
直してみます。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 11:07
by
直したのですが、このようにエラーが出ます。
(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C3872: '0x3000': この文字を識別子で使用することはできません
(32) : error C2065: '   ' : 定義されていない識別子です。
(32) : error C2146: 構文エラー : ';' が、識別子 'fprintf' の前に必要です。
(32) : error C2664: 'fprintf' : 1 番目の引数を 'const char [7]' から 'FILE *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

コード:

#include<stdio.h>
#include<math.h>
#define MAX 1000

 
void main(void){
    int i;
    double x[MAX],y[MAX];
    double t,dt;
    double v0x,v0y,g,e1,e2,x0,y0,x00,v0;
     
     
    scanf("%lf",&v0x);
    scanf("%lf",&v0y);
    scanf("%lf",&g);
    scanf("%lf",&x0);
    scanf("%lf",&y0);
    scanf("%lf",&e1);
    scanf("%lf",&e2);
     
     
    FILE *fp;
    dt=0.01;
    fp=fopen("kekka.csv","w");
     
   
                     
    for(i=0;i<x0/v0x/dt;i++){
        t=i*dt;
        x[i]=-v0x*t+x0;
		y[i]=y0;
     fprintf("%f,%f\n",x[i],y[i]);
	}
		
   
                      
    for(i=0;i<sqrt(2*y0/g);i++){ 
	    t=i*dt;
        x[i]=e1*v0x*t;             
        y[i]=y0-(g*t*t)/2;  
        fprintf(fp,"%f,%f\n",x[i],y[i]);
    }
     
     
    x00=e1*v0x* sqrt(2*v0/g);
    while(v0y>0.1){
            for(i=0;i<2*v0y/g/dt;i++){
                t=i*dt;
                x[i]=x00+v0x*t;
                y[i]=v0y*t-g*t*t/2;
                fprintf(fp,"%f,%f\n",x[i],y[i]);
            }
            x00=x0+2*v0x*v0y/g;
            v0y=e2*v0y;
        }
     
     
    fclose(fp);
} 

 

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 11:15
by h2so5
全角スペースが消えていない上に、
消してはいけないところを消していますよ。

32行目を書きなおしてみてください。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 12:56
by
このようなエラーが出ます。指摘お願いします。

コード:

  #include<stdio.h>
#include<math.h>
#define MAX 1000
 
 
void main(void){
    int i;
    double x[MAX],y[MAX];
    double t,dt;
    double v0x,v0y,g,e1,e2,x0,y0,x00,v0;
     
     
    scanf("%lf",&v0x);
    scanf("%lf",&g);
    scanf("%lf",&x0);
    scanf("%lf",&y0);
    scanf("%lf",&e1);
    scanf("%lf",&e2);
     
     
    FILE *fp;
    dt=0.01;
    fp=fopen("kekka.csv","w");
     
   
                     
    for(i=0;i<x0/v0x/dt;i++){
        t=i*dt;
        x[i]=-v0x*t+x0;
        y[i]=y0;
		fprintf(fp,"%f,%f\n",x[i],y[i]);
	}
                      
    for(i=0;i<sqrt(2*y0/g)*dt;i++){ 
    t=i*dt;
        x[i]=e1*v0x*t;             
        y[i]=y0-g*t*t/2;  
        fprintf(fp,"%f,%f\n",x[i],y[i]);
    }
     
     
    x00=e1*v0x*sqrt(2*y0/g);
  v0y=e2*g*sqrt(2*y0/g);//ここにエラー
    while(v0y>0.1){
            for(i=0;i<2*v0y/g/dt;i++){
                t=i*dt;
                x[i]=x00+e1*v0x*t;
                y[i]=v0y*t-g*t*t/2;
                fprintf(fp,"%f,%f\n",x[i],y[i]);
            }
            x00=x0+2*v0x*v0y/g;
            v0y=e2*v0y;
        }
     
     
    fclose(fp);
}
1>c:\users\eri\documents\visual studio 2005\projects\最終課題\最終課題\物体の運動.cpp(43) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\eri\documents\visual studio 2005\projects\最終課題\最終課題\物体の運動.cpp(43) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\eri\documents\visual studio 2005\projects\最終課題\最終課題\物体の運動.cpp(43) : error C2065: '  v0y' : 定義されていない識別子です。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 12:57
by h2so5
このエラーが出たときは全角スペースが原因です

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 13:06
by
なるほど。
直したつもりなんですが、全角スペースを見つけるのが難しいです。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 13:11
by h2so5
Visual Studioであれば Ctrl+H を押して、
「検索する文字列」に全角スペースを入れて
「置換後の文字列」を半角スペースにして、
「全て置換」を押せば全角スペースが全て消えます。

他にも、全角スペースが視覚化できるエディタなどにコピーして確認する手もあります。

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 13:18
by
「検索する文字列」に全角スペースと入力するんですか?

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 13:58
by h2so5
全角スペースを入れます

Re: 指摘をお願いします

Posted: 2011年1月23日(日) 14:10
by
ありがとうございます