2016-08-28 5 views
-1

ユーザーが指定した数字と新しい数字を入力するコードをコンパイルしています。アレイのサイズが入力されたものと異なる - C

私はCに新しいですし、私は配列に数字を入れて苦労しています、私は私が間違っているつもり場所を確認するように計算されたすべてのものを印刷しようとしたが、私は

#include<stdio.h> 

int main() 
{ 
    int input,COUNT=0,i; 



    printf("LCD calculator display.\n"); 
    printf("Enter input:"); 
    scanf("%d",&input); 


    int inputCopy = input; 
    while(input!= 0) 
    { 
    input /= 10; 
    COUNT++; 
    printf("Count = %d\n",COUNT); 
    } 

    int s = COUNT; 
    int output[5]; 
    int SIZE = sizeof(output); 
    printf("s = %d\n",s); 
    printf("output size = %zu\n",sizeof(output)); 
    printf("Size = %d\n",SIZE); 

    for(i=0;i<COUNT;i++) 
    { 
     int digit = inputCopy % 10; 
     output[i] = digit; 
     inputCopy /= 10; 
     i++; 
    } 

    for(i=0;i<COUNT;i++) 
    { 
     printf("Numbers: %d\n",output[i]); 
    } 
} 
をそれを把握することができます

は、私は次のような結果を得る:

LCD calculator display. 
Enter input:13579 
Count = 1 
Count = 2 
Count = 3 
Count = 4 
Count = 5 
s = 5 
output size = 20 
Size = 20 
Numbers: 9 
Numbers: 0 
Numbers: 7 
Numbers: 0 
Numbers: 5 

私は彼らが私がしようとすると、私が間違って行っていたところを見つけ出す手助けしていたここにいくつかの不要なラインがあることを知っています。正しくずっと

+4

としてループのためにあなたがあなたの最後から2番目の 'for' – tkausl

+0

おかげで二度' i'インクリメントしている中で、私を2回インクリメントを高く評価し保存
桁を得ることに任意のヘルプtkauslなんて単純なことだし、それを修正した – Josh

+2

'sizeof()'はサイズをバイト単位で報告していることに気がつきます。そのため、それぞれが5のint型の配列に対して20個の印字を得て、それぞれがサイズ4のものです。 –

答えて

0

あなたは、あなたの

for(i=0;i<COUNT;i++)      // HERE 
{ 
    int digit = inputCopy % 10; 
    output[i] = digit; 
    inputCopy /= 10; 
    i++;         // AND HERE 
} 
関連する問題