【发布时间】:2016-03-23 08:21:22
【问题描述】:
所以我尝试在某个点或位置之后打印数组元素 但它给我打印了另外一些垃圾。代码需要打印7,8,9,5。 我确定问题出在这条线上:
for (arr=x+1;arr
;arr++) 但我不明白该写什么来代替这一行。
请帮助我并使用 * 或 & 代替 [](使用指针)。谢谢!
#include <stdio.h>
#include <stdlib.h>
void printAfterX(int* arr, int n, int* x);
int main(void)
{
int arr[] = { 4, 8, 6, 2, 1, 3, 5, 7, 8, 9, 5 };
printAfterX(arr, 11, arr + 6);
system("PAUSE");
return 0;
}
void printAfterX(int* arr, int n, int* x)
{
if (n >= arr)
{
printf("not found");
}
else
{
for (arr=x+1; arr < arr+ n; arr++)
{
printf("%d ",*arr);
}
}
}
【问题讨论】:
-
函数printAfterX的第二个参数是什么?
-
编译时启用所有警告并将警告视为错误。
-
@HassanNadeem 数组的大小
-
@saymaname
if (n >= arr)没有任何意义,您正在将整数与数组进行比较。我你需要这个if (n+arr >= x) -
n在您的代码中是11。arr < arr + n中的 is 情况永远不会是假的。