2017-01-04 3 views
-4

このパターンにはコードが必要です。Cプログラミングパターン

1 
2 4 6 
1 3 5 7 
2 4 6 8 10 
1 3 5 7 9 11 13 

私はそれを試してみましたが、私のコードを、それを作ることができませんでした: -

#include <stdio.h> 
main(){ 
int i,j,k=1; 
for(i=1;i<=5;i++){ 
    for(j=1;j<=i;j++){ 
     printf("%d",k); 
     k+=2; 
    } 
    printf("\n"); 
} 

} 

このCパターンは、1つの2行目に余分な整数と最後の行を持っています。助けがありがとう

+1

は何*正確に意味「どのように絶えずそれを1と2を作るのですか」*ん:また、2回目と最後の行の末尾に余分な整数は、内側のループで醜い条件を必要としますか? – NPE

+1

予想される出力を投稿すると便利です – yano

+0

すべての行には最初と最後に2があります。 – Akki

答えて

2

(主な)問題は、あなたが外側のループの新しい反復ごとにkをリセットしていないということです。

#include <stdio.h> 

int 
main(int argc, 
    char** argv) 
{ 
    unsigned int i, j, k, 
       F = 6u; /* number of rows + 1 */ 

    for(i=0u; i<F; ++i) 
    { 
     k = i % 2u + 1u; 

     for(j=0u; j < i + (i>=2u) + (i==F-1); ++j) 
     { 
      printf("%u ",k); 
      k += 2u; 
     } 

     puts(""); 
    } 

} 
+0

もう一つのキンクは、必要な出力が最初の行に1要素が必要であり、2行目3が単純なループパターンで壊れることです。 – DBPriGuy

+1

それでも、 2行目と最後の行の1桁の余分な数字のために解決しないでください – Akki

+0

@DBPriGuy true。 OPの詳細についてはあまり明確ではありません。 –