c - 列出c中数组的数字内容

标签 c arrays numeric

我正在编写一个简单的程序,它获取成绩列表并在 c 中输出及格成绩,并列出列表中的所有成绩(10 个成绩)。

计算及格分数并打印的功能很好。

使用 printf 打印数组的内容是我遇到问题的地方。

这就是我输入数组的方式:

int grades[10] = {70, 80, 95, 65, 35, 85, 54, 78, 45, 68};

目前我正在使用这个(有效):

printf ("These are the grades: %d, %d, %d, %d, %d, %d, %d, %d, %d, %d \n", grades[0], grades[1], grades[2], grades[3], grades[4], grades[5], grades[6], grades[7], grades[8], grades[9]);

它列出了数组的内容,但我确信必须有一种更优雅的方式来打印列表,而不专门指向数组的每个元素。

是否有我不知道的更优雅的解决方案?

我确实搜索了主题,但无法找到答案,如果这是重复的,抱歉。

最佳答案

使用控制循环(在本例中为 for )打印您要定位的任意数量的项目。给定要打印的 N 个项目的数组,以下代码演示了这一点(并生成您确切想要的输出):

int grades[N]; // initialized here or filled later

printf("These are the grades: %d", grades[0]);
for (int i = 1; i  < N; i++) 
    printf(", %d", grades[i]);
fputc('\n', stdout);

请注意,此方法允许您底层打印数组。您不必打印所有内容。例如,假设您有一个可以保存 M 的数组。元素,但只容纳 N (其中 0 <= N <= M 成立)。然后只需更改先前的算法以考虑可能更少的项目(包括没有):

if (N > 0)
{
    printf("These are the grades: %d", grades[0]);
    for (int i = 1; i  < N; i++) 
        printf(", %d", grades[i]);
    fputc('\n', stdout);
}

您可以找到有关 for 循环的更多信息 here ,以及 C 语言的许多其他属性。保留该链接;值得收藏。

关于c - 列出c中数组的数字内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53243593/

相关文章:

android - 使用 NDK 编译 C++ 原生 Activity

Haskell 的类型系统将数值视为函数?

java - 将 strings.xml 中的数组添加到另一个 ArrayList

c - uint 结构数组上的 async_work_group_copy

java - 将值添加到从文件 java 读取的数组

r - 无法创建生存对象 : error "Time variable is not numeric"

Javascript:向数字添加逗号

c - 如何在 Linux C 中使用原始套接字接收 bpdu 流量

c - 来自 stdin 的 fgets 具有不可预测的输入大小

c - 按位运算符的说明