【发布时间】:2023-04-09 14:12:01
【问题描述】:
int main()
{
float T[100];
float *pt=T;
float suma = 0, srednia, zmienna;
int rozmiar;
printf("How many numbers would you like to put in: ");
scanf(" %d", &rozmiar);
int dzielnik = rozmiar;
printf("\n Enter the number: \n");
for(int i = 0;i<rozmiar;i++)
{
printf("\n i = %d", i );
scanf("%99f\n", &zmienna);
*(pt+i) = zmienna;
}
return 0;
}
这是我的代码。这个想法很简单。我有一个数组;我想扫描要放入数组中的数字,然后将数字放入数组中。我不知道为什么,但scanf 忽略了我放入数组中的第二个变量。
如果我在第一个 scanf 中输入“2”,程序需要我提供 3 个变量。
我的输出应该是这样的:
How many numbers would you like to put in: 2
Enter the number:
i = 0
2 (my number)
i=1
3 (my number)
但实际上是这样的:
How many numbers would you like to put in: 2
Enter the number:
i = 0
1 (my number)
2 (my number)
i = 1
3 (my number)
【问题讨论】:
-
从scanf中删除换行符,就像
scanf("%99f", &zmienna); -
如果您只使用
%d和%f,则无需担心换行符,前导空格会被过滤(%c是另一回事)。但是%99f中的99应该实现什么?暂时保持简单。
标签: c