【发布时间】: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", &elemArray[i1] ); -
你对
cnt = atoi (argv[1])有什么意见?包括stdlib.h标头。 -
是的,很好的问题,它曾经是一个黑暗的朋友。但我现在可以将其视为盟友。
标签: c debugging for-loop printf scanf