【问题标题】:scanf and printf for loop different amount of outputscanf 和 printf for 循环不同的输出量
【发布时间】:2023-03-08 03:10:01
【问题描述】:

我得到的错误是扫描将比打印循环多一位数。 我在循环之后有示例代码。有谁知道这是为什么?

   int main( int argc, char *argv[] ) {

        //Throw error is *Argv[] is not an integer
        //assuming it was an integer
        int cnt = (int)(argv[1][0] - '0');
        printf( "number is %d\n", cnt );
        //
        printf("Enter %i integer values to place in tree:\n", cnt);
        for ( i1 = 0; i1 < cnt; ++i1) {
                scanf( "%d\n", &elemArray[i1] );
        }

        //first ouput "INput Values"

         for ( i2 = 0; i2 < cnt; ++i2) {
               printf( "%d\n", elemArray[i2] );
        }

        //Build tree with each element
        return 0;
}

输出是:

Enter 5 integer values to place in tree:
1
2
3
4
5
6
1
2
3
4
5

【问题讨论】:

  • 它提示您输入数字多少次?
  • 6 次 @Martin James。它用 &elemArray 的地址尝试了一些东西,但不是这样。
  • 我想通了。它是 'scanf("%d\n", &elemArray[i1]);'改为scanf( "%d", &amp;elemArray[i1] );
  • 你对cnt = atoi (argv[1])有什么意见?包括 stdlib.h 标头。
  • 是的,很好的问题,它曾经是一个黑暗的朋友。但我现在可以将其视为盟友。

标签: c debugging for-loop printf scanf


【解决方案1】:

我想通了。它是 scanf( "%d\n", &amp;elemArray[i1] ); 改为 scanf( "%d", &amp;elemArray[i1] );

【讨论】:

  • 太棒了。然后我会删除我的答案。
猜你喜欢
  • 2015-01-30
  • 2017-07-06
  • 1970-01-01
  • 2023-01-15
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多