gpt4 book ai didi

c - 程序在反转顺序时跳过数组的最后一个元素

转载 作者:行者123 更新时间:2023-11-30 20:03:59 28 4
gpt4 key购买 nike

以下程序获取输入并反转它,但这样做时似乎跳过了数组的最后一个元素

/*C program that declares an array A and inputs n integer values in A.
Then the contents of array A is copied to another array B in reversed order.
Finally print the elements of array B*/

#include<stdio.h>
int main()
{
int n, reverse, i ;
int A[100], B[100] ;
printf("Input the size of array A: ") ;
scanf("%d", &n ) ;
printf("Input the values of A: ") ;
for( i = 0 ; i<n ; i++ )
scanf("%d ", &A[i] ) ;
for(i = n-1 , reverse = 0 ; i>= 0 ; i--, reverse++)
B[reverse] = A[i] ;
for(i = 0 ; i<n ; i++ )
A[i] = B[i];
printf("Array B: ") ;
for(i=0 ; i<n ; i++ )
printf("%d ", A[i] ) ;
return 0 ;
}

这里是在线repel演示问题的代码

最佳答案

问题是你如何在这里格式化 scanf

  for( i = 0 ; i<n ; i++ )
scanf("%d ", &A[i] ) ;

%d 之后的额外空格会弄乱输入。输入数据必须与 scanf 字符串的格式完全匹配。将此更改修复为

  for( i = 0 ; i<n ; i++ )
scanf("%d", &A[i] ) ;

这是因为

White space (such as blanks, tabs, or newlines) in the format string match any amount of white space, including none, in the input. Everything else matches only itself.

This详细解释一下

关于c - 程序在反转顺序时跳过数组的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44857136/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com