首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scanf跳过一行

Scanf跳过一行
EN

Stack Overflow用户
提问于 2017-02-12 08:09:41
回答 1查看 501关注 0票数 1

我正在写一个代码,提示用户输入他们选择的天数(在3-10天之间)的最高点和最低点。到目前为止,除了输入高温和低温的scanf函数之外,一切都很正常,看起来比正常温度低了一行。例如,将输出第一天的高和低,但用户的输入从第一天的低开始,因此高的输入紧接在低的旁边,低的输入在下一个空白行上。

我认为问题可能是printf正在完成在scanf生效之前输出最高和最低值的功能。有没有办法让scanf发生,以便可以依次输入最高和最低值?下面是我的代码:

代码语言:javascript
复制
#include <stdio.h>

int main (void)
{
    int i;
    int limit;
    int day[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int high[10],low[10];

    printf("---===IPC Temperature Analyzer V2.0===---\n");

    printf("Please enter the number of days between 3 and 10, inclusive: ");
    scanf("%d", &limit);
    while (limit <= 2 || limit >= 11) {
            printf("Invalid");
            scanf("%d", &limit);
    }

    for(i = 0;i < limit; i++) {
            printf("Day %d - High:\n Day %d - Low: ",day[i],day[i]);
            scanf("%d%d", &high[i], &low[i]);
    }

    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-12 08:40:09

你在找这样的东西吗?

代码语言:javascript
复制
for(i = 0;i < limit; i++) {
    printf("Day %d - High: ", day[i]);
    scanf("%d", &high[i]);
    printf("Day %d - Low: ", day[i]);
    scanf("%d", &low[i]);
}

这将导致:

代码语言:javascript
复制
Please enter the number of days between 3 and 10, inclusive: 4
Day 1 - High: 5
Day 1 - Low: 3
Day 2 - High: 4
Day 2 - Low: 2
Day 3 - High: 2
Day 3 - Low: 1
Day 4 - High: 5
Day 4 - Low: 9
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42182779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档