c - C:为什么我的程序在while循环后不继续?(扫描)
问题描述
我目前正在学习C
并想编写一个程序,该程序需要一个数字ganzeZahl
来确定数组长度。
然后你必须输入存储在该大小数组中的数字,n
然后它应该进行选择排序(我在这里删掉了,因为我的程序甚至没有到达那个部分)。
每当我尝试运行它时,我都无法通过 while 循环。它编译得很好。它永远不会到达printf("!!!--------!!!");
//由于某种原因没有到达这个部分?测试5。
#include<stdio.h>
int main() {
int ganzeZahl;
scanf("%d", &ganzeZahl);
//printf("ganze Zahl ist: %d\n", ganzeZahl); //test
int array[ganzeZahl];
int i = 0;
for(int z = 0; z < ganzeZahl; z++) {
printf("%d\n", array[z]);
}
while(i<ganzeZahl) {
//printf("!!!hier!!!\n"); //test2
scanf("%d", &array[i]);
//printf("zahl gescannt!\n"); //test 3
i++;
//printf("i erhöht!\n"); //test 4
}
printf("!!!--------!!!"); //this part isn't reached for some reason? test5
//selection sort here
//[...]
return 0;
}
解决方案
您的程序确实执行正确,并最终到达最后一次printf
调用。
当它进入while
循环时,它会继续调用scanf
,是什么导致它停止并等待每次迭代输入一个值。如果您提供ganzeZahl
输入(输入数字并按“输入”),它将完成循环并继续。我想如果你在循环中添加一个printf
之前scanf
,它应该更直观。
推荐阅读
- asp.net - @Html.DisplayFor 导致 microsoft.aspnetcore.mvc.viewfeatures.internal.viewbuffer
- python - 如何使用 OpenCV-Python 从英特尔实感 D415 获取 IR1 和 IR2 摄像头图像?
- javascript - 使用 tablesorter 动态排序表
- webpack - Webpack splitChunks 插件 - 为什么设置块的优先级使其初始化异步?
- imagemagick - 我们如何使用php对png图像应用阈值效果
- angular - 有条件地在 ng2-smart-table 中添加自定义按钮
- java - JUnit - 在另一个类的测试中使用方法
- jquery - 我不知道如何使该框水平显示
- php - Yii2 Swiftmailer foreach 向第一个发送相同的电子邮件
- java - Java客户端不会将整个消息发送到python服务器?