【发布时间】:2016-10-06 23:46:42
【问题描述】:
这个问题可能有点模糊,所以请允许我详细说明。我的目标是根据用户输入计算下载速度。所以一个示例输出显示为here。
所以我继续使用以下代码请求用户输入(这部分完全有效,但只是为了给你更大的图景)
#include <stdio.h>
int main(void) {
int minFileSize, maxFileSize, maxDLSpeed, minDLSpeed;
int time;
//first we get user input for minimum size and download speeds
printf("Enter a minimum file size: ");
scanf("%d", &minFileSize);
//after this condition is satisfied..
while (minFileSize <= 0 ) {
printf("Invalid input. Try again: \n");
scanf("%d", &minFileSize);
while(getchar() != '\n' ); //clears caches
}
//program continues
printf("Enter a minimum download speed (MB/s): ");
scanf("%d", &minDLSpeed);
while (minDLSpeed <= 0) {
printf("Invalid input. Try again: ");
scanf("%d", &minDLSpeed);
while ( getchar() != '\n' );
}
printf("Enter a maximum file size (MB): ");
scanf("%d", &maxFileSize);
while (maxFileSize < minFileSize) { //maxFileSize can't be lower than minFileSize
printf("Invalid input. Try again: ");
scanf("%d", &maxFileSize);
while (getchar() != '\n');
}
printf("Enter maximum download speed (MB/s): ");
scanf("%d", &maxDLSpeed);
while (maxDLSpeed < minDLSpeed) {
printf("Invalid input. Try again: ");
scanf("%d", &maxDLSpeed);
while (getchar() != '\n');
}
while (getchar() != '\n') 只是清除缓存,以便我们可以继续下一个输入。
在获得用户输入后,我使用嵌套的 for 循环循环遍历最小文件大小一直到最大大小(因此它会在达到最大大小时停止,这取决于用户输入的内容) 然后对最小下载速度和最大下载速度做同样的事情。 那么每次循环迭代,它应该输出下载速度,即(文件大小/下载速度)所以i/j代表这个
这是我使用的循环
for (int i = minFileSize; i <= maxFileSize; i++)
{
for (int j = minDLSpeed; j<= maxDLSpeed; j++) {
time = i / j;
};
}
唷如果您已经阅读了这么多,谢谢!现在我的问题是如何以上面显示的格式打印输出,以便每次循环运行时,它都会根据文件大小和下载速度打印出正确的下载速度。
【问题讨论】:
-
您的问题包含一个巨大的 sn-p,它最终是无关紧要的,但对于您真正需要做的事情仍然模棱两可。我不明白你的问题是什么 - 它只是在循环中打印一个整数吗?
printf("%d\n", time);? -
所以我的问题是在循环中打印出一个整数,但要连续打印,直到达到最大值。因此,如果我们的最小文件大小是 8 并且我们的最小下载速度是 9,它应该打印出那个输出(所以文件大小除以下载速度)然后循环到下一个;所以现在它的最小文件大小为 9,最小下载速度为 10,并在达到最大下载和文件大小输入(用户最初提供)时停止
-
我还是不明白。这与在内部循环中调用
printf()有什么不同?您的问题是关于打印还是关于循环条件的逻辑? -
我想我的问题与这两个有关。如果您查看@mhawke 的回复,它基本上接受用户输入并针对每个单独的下载速度和文件大小循环通过它,然后打印该特定值。所以文件大小 8 和下载速度 9 会给你 .89,然后你选择文件大小 9 和下载速度 10 并一直打印,直到你达到最大文件和下载速度(假设它们分别是 13 和 12 )
标签: c for-loop while-loop