在C语言中,Print语句没有被打印到for循环中
在我的程序中,输入第一个输入后。由于在C语言中,Print语句没有被打印到for循环中,c,function,io,C,Function,Io,在我的程序中,输入第一个输入后。由于scanf旁边的printf语句,我希望能够打印出这些值,但这是第一次没有打印出来。在下一次迭代中,它的所有工作都正常 例: 输出: 输入input10 12 i=0,a[i]=11896224 输入 代码: #包括 #包括 int func(int*,int); int*a; int main() { 整数长度=5; a=(int*)malloc(sizeof(int)*长度); for(int i=0;i
scanf
旁边的printf
语句,我希望能够打印出这些值,但这是第一次没有打印出来。在下一次迭代中,它的所有工作都正常
例:
输出:输入input10
12
i=0,a[i]=11896224
输入 代码:
#包括
#包括
int func(int*,int);
int*a;
int main()
{
整数长度=5;
a=(int*)malloc(sizeof(int)*长度);
for(int i=0;i
从scanf
函数中删除\n
。我想你会发现scanf做的事情和你想象的不一样。旁注可能重复:(1)和(2)对于长度,最好使用或ssize\t
。@Smac89有点类似,但不完全相同,对我来说,只有在第一次迭代中问题才会出现,而在其余的试验中问题才起作用fine@DanielFischer,我在下面的url“”中找到了你的文章,你能告诉我这个问题的原因吗?我不完全确定,但它与缓冲区中的空白有关,它被scanf
或类似的东西忽略了。
#include<stdio.h>
#include<stdlib.h>
int func(int *, int);
int *a;
int main()
{
int length = 5;
a = (int *)malloc(sizeof(int)*length);
for (int i = 0;i < length;i++)
{
printf("Enter input");
scanf("%d\n", &a[i]);//100,104,108,112,116
printf("i=%d,a[i]=%d\n", i, &a[i]);/*Print Statement which is not executing for first time*/
}
func(a, length);
return 0;
}
int func(int *b, int length)
{
printf("Length=%d", length);
for (int j = 0;j < length;j++)
printf("b[%d]=%d", j, b[j]);//
return 0;
}