【问题标题】:Adding a new line inside a for loop. C programming在 for 循环中添加新行。 C 编程
【发布时间】:2021-02-22 09:11:38
【问题描述】:

您好,这是我上大学的第一年,我们有一个关于数组的 C 编程作业。而且我设法编写了我的代码,但我唯一的问题是在 for 循环中添加间距或换行,并且用户仍然可以输入。空格或换行符在number[2] 之后,因此将number[3]number[4] 与其余部分分开。

想要的输出是这样的:

Enter number [0]: 70
Enter number [1]: 89
Enter number [2]: 90    (Enter Key)
Enter number [3]: 76
Enter number [4]: 78 

number [0]: 70
number [1]: 89
number [2]: 90    

 

number [3]: 76
number [4]: 78

 

Highest Grade : 90
Lowest Grade  : 70


Average Grade:

这是我的代码。 (抱歉间距或格式不好我是初学者)

int main(){
    
    int Agrades[5];
    int BGrades=5;
    int average=0;
    int highest, lowest;
    for (int i=0; i<BGrades; ++i){
        printf("Enter Number[%d]:",i);
        scanf("%d",&Agrades[i]);
    }
    for (int i=0; i<BGrades; ++i){
    printf("\nNumber[%d]:%d",i, Agrades[i]);
    }
    for (int i=0; i<BGrades; ++i)
    average+=Agrades[i];
    average= average/5;

     lowest=highest=Agrades[0];
    for(int i=1; i<5; i++)
    {
         if(lowest>Agrades[i])
          lowest=Agrades[i];   
         if(highest<Agrades[i])
          highest=Agrades[i];       
    }
     printf("\n\nHighest Grade: %d", highest);
     printf("\nLowest Grade: %d", lowest);

    printf("\n\nAverage Grade: %d", average);
    
    return 0;
}

这是我编写的代码的输出: enter image description here

【问题讨论】:

  • 你的意思是他们可以按回车并换行?这对于控制台程序来说是正常的。你真的无能为力。
  • 作为一个初学者并不是糟糕的代码格式的借口。使用与学习材料中相同的格式。正确格式化的代码非常重要,尤其是对于初学者。
  • 每当我和我的同学尝试按回车换行时。打印输入结果时,number[2] 和 number[3] 之间没有新行或空格。
  • 对不起各位。但是在网上学习并且没有给定的阅读材料真的很听话,我们只是依靠我们的老师在有限的时间内教我们他可以做什么。
  • @Lans 请不要添加文字图片

标签: arrays c loops for-loop newline


【解决方案1】:

一个简单的if 检查就可以解决问题

  for (int i = 0; i < BGrades; ++i)
  {
    printf("\nNumber[%d]:%d", i, Agrades[i]);
    if (i == 2)
    {
      puts("\n");    // or printf("\n"); to skip just 1 line
    }
  }

否则,如果您希望在用户输入时添加\n 字符,那么最好使用字符串来实现,在输入阶段添加\n,然后在打印时将字符串解析为整数,或者只是如果数据类型不是问题,则将它们打印为字符串。

如果您希望实施第二个版本,请指定以便我可以修改我的答案

当前输出为:

>> gcc -o test test.c
>> ./test
Enter Number[0]:1
Enter Number[1]:2
Enter Number[2]:3
Enter Number[3]:4
Enter Number[4]:5

Number[0]:1
Number[1]:2
Number[2]:3


Number[3]:4
Number[4]:5

Highest Grade: 5
Lowest Grade: 1

Average Grade: 3

【讨论】:

  • 第一个版本效果很好,可以传给我的老师!太感谢了!但是如果你可以并且如果你愿意的话,你能举一个第二个版本的例子并详细说明一下吗?所以我可以进一步了解 C 编程。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 2021-07-10
  • 2021-01-26
  • 1970-01-01
相关资源
最近更新 更多