【问题标题】:For Loop alternating printfFor循环交替printf
【发布时间】:2015-02-12 23:38:25
【问题描述】:

我有这个程序提示用户输入一个数字,这个数字将是消息在输出中打印的行数。但是,我要打印的每条偶数行都打印消息(“Hello”)和要打印的每条奇数消息(“Hello Again!”),但我不知道该怎么做。这是我到目前为止所得到的。

#include <stdio.h>

int main()
{
    int lines;
    int i;

    printf("How many times would you like me to repeat it?\n");
    scanf("%d", &lines);

    for (i=0;i<=lines;i++)
    {
        if (lines%i=0){
            printf("Hello!\n");
        } 
        else {
            printf("Hello Again!\n");
        }
    }
    return 0;
}

【问题讨论】:

  • 在你的循环中尝试if(i % 2 == 0)来区分奇数和偶数。
  • 你的大括号不匹配,并且缩进(和行间距)到处都是。代码甚至不会按原样编译;请更正。
  • 在你的for循环中,把&lt;= lines改成&lt; lines,否则循环实际上会执行lines + 1次。
  • 始终检查 scanf() 的返回值以确保操作成功
  • 输出的第一行是奇数行(需要Hello Again!)还是偶数行(需要Hello)?目前,您正在将其视为(或尝试将其视为)它是一条偶数线而不是奇数线。但是,首先打印 Hello Again 似乎也很奇怪,因此您的处理可能是正确的,即使问题的描述并不像应有的那样准确。

标签: c loops for-loop printf alternating


【解决方案1】:

试试这个:

int main()
{
    int lines;
    int i;
    printf("How many times would you like me to repeat it?\n");
    scanf("%d", &lines);
    for (i=0;i<lines;i++)
    {
        if (i%2 == 0){
            printf("Hello!\n");
        } 
        else {
            printf("Hello Again!\n");
        }
    }
    return 0;
}

您必须将模数乘以 2 来检查偶数或奇数,并使用条件运算符“==”而不是赋值运算符“=”检查条件

还要在main函数的最后给出return语句。

【讨论】:

  • 第一遍需要'i'为0,所以第一行输出'hello'。建议:'for(i = 0;i
  • @user3629249 感谢您告知错误。更新了代码!
猜你喜欢
  • 2016-08-16
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多