2017-06-28 8 views
-5

今日私は新しいことをしようとしましたが、私は正しいことをしませんでした。誰もそれを行うことができ、それはなぜそんなにそんなに説明できますか?事前にありがとうmainの次の関数と配列の結果はどうなりますか?

iがn = 5未満つの番号に、1からカウントが行くことを取り払わので、私は、 1,2,3,4の結果を得た私の場合
#include<stdio.h> 

void function(int a[],int n)/*The definition of function with void type,with parameters 
int a[],int n */ 
{ 
    int i;// declared count,type integer// 

    for(i=0;i<n;i++)//count goes from 0,to <n,and increment all time while goes// 
     printf("%d",a[i++]);// printing on the screen integers (a[i],i=i+1)// 
    printf("\n");// printing the newline // 
} 

main() 
{ 
    int a[]={1,2,3,4,5,6,7}; // declaration of array with 7 elements // 
    int n=5;// declaration of variable n type integer value of 5 // 

    function(a,n) // calling the function with parametres a,n// 
} // end of sequence // 

、しかし、IDEはの結果を示し、

+3

あなたがループ内で二度 'i'をインクリメントしている: ここでの作業、より読みやすいバージョンです。 –

+2

あなたは私が2回増分しています –

+0

@ Jean-FrançoisFabreは私からとても馬鹿です、私はそれを逃しました、uselles質問は今私が参照してください、ありがとう – Mark0n1

答えて

1

正しい形式の有効なCコードを投稿していることを確認してください。

あなたが得るものは百三十五ではなく、三、五であることに注意してください。ループカウンターを2回インクリメントしているので、これを得ることができます。

#include <stdio.h> 

void function(int a[],int n) 
{ 
    int i; 
    for(i = 0; i < n; i++) 
     printf("%d ",a[i]); 
    printf("\n"); 
} 

int main(void) 
{ 
    int a[]={1,2,3,4,5,6,7}; 
    int n=5; 
    function(a,n); 

    return 0; 
} 
+0

多分、OPは各番号の後に改行が必要です。したがって、forループの中でprintf()関数の両方を使うか、それを1つのprintf( "%d \ n"、a [i])に混ぜるブレースです。よりよく見えるだろう。 –

+0

ありがとう、改行に問題がありました。関数が改行のそれぞれのスクリーン番号に印刷されますが、今ではそれが1つのprintfに混在することがわかりました。 – Mark0n1

+1

あなたは大歓迎です。あなたは1つのステートメントでそれを行うことも、(i = 0; i

0

printf("%d",a[i++]);// printing on the screen integers (a[i],i=i+1)// 

を交換おかげで、私は私のやり方に問題がカウンターであると思います...しかし、すべてのアドバイスは歓迎されています

printf("%d",a[i]);// printing on the screen integers (a[i],i=i+1)// 

あなたのコードでは、私は2回増分していました。一度中に1回[i ++]

+0

私はカウンタが1だけ増えたと思っています。ありがとう – Mark0n1

関連する問題