2016-05-03 10 views
1

複数のループ条件を拡張するにはどうすればよいですか?

#include <stdlib.h> 
#include <stdio.h> 

int main() 
{ 
int i=0; 
int j=0; 
size_t count=0; 
float numbers[20][100]; 
float velocity[21][101]; 
char *line = NULL; 

    FILE *myFile; 
    myFile = fopen("vel.txt", "r"); 

    if (myFile == NULL) 
    { 
     printf("Error Reading File\n"); 
     exit (0); 
    } 

while(i < 20 && getline(&line, &count, myFile)!=-1) { 
int len = 0, pos = 0; 
    j = 0; 
    while(j < 100 && 1 == sscanf(line + pos, "%f%n", &numbers[i][j++], &len)) 
     pos += len; 
    i++; 
} 
free(line); 
fclose(myFile); 

    i=1; 
    for(j = 0; j < 101; j++) 
    { 
     if(j == 1) 
     { 
     velocity[i][j]=numbers[i][j]; 
     } 
     else if (j == 101) 
     { 
     velocity[i][j]=numbers[i][j]; 
     } 
     else 
     { 
     velocity[i][j]=(numbers[i][j-1]+numbers[i][j])/2;  
     }  
    } 

     for (j=0 ; j<101 ; j++) { 
     printf("\n%f", velocity[i][j]); 
     } 
} 

は私が速度を計算する必要が私のコード21101 2次元mesh.If i==1は、それは上記の私のコードで、fine.The SAM条件が適用されます動作しますi==21 .But他のすべての値のために(2〜20であれば)計算は異なります。どのように変更する必要がありますか

if(i== from 2 to 20 &&j == 1) 
     { 
     do something 
     } 
     else if (i== from to to 20 && j == 101) 
     { 
     do something 2 
     } 
     else(means i goes from 2,20 j goes from 2,100) 
     { 
     do something 3 
     }  

答えて

2

if(i >= 2 %% i <= 20)?手段:2 < = i < = 20、またはiが2より大きくても同じで、iが20より小さいか同じであれば、それは真です。

あなたの例の場合:

if(i >= 2 && i <= 20 && j == 1) 
{ 
    //do something 
} 
else if(i >= 2 && i <= 20 && j == 101) 
{ 
    //do something 2 
} 
else if(i >= 2 && i <= 20 && j >= 2 && j <= 100) //means i goes from 2,20 j goes from 2,100 
{ 
    //do something 3 
} 

または私は逃した何がありますか?

+0

いいえ、これをコンパイルすることはできません。他にも見てください.2つの変数の場合はどのように見えるでしょうか? –

+0

他の条件を追加するだけで、私は答えを更新します... – mame98

関連する問題