首页 > 解决方案 > 在 for 循环中添加新行。C 编程

问题描述

嗨,这是我上大学的第一年,我们有一个关于数组的 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;
}

这是我制作的代码的输出: 在此处输入图像描述

标签: arrayscloopsfor-loopnewline

解决方案


一个简单的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

推荐阅读