C循环结束后从循环中打印数据

时间:2016-03-05 21:25:41

标签: c

所以,我设法纠缠了一些代码以使我的程序部分工作。我的程序必须提示输入成绩(完成),循环重复直到打破(完成),并输入每个成绩的打印结果。最后一部分是我陷入困境的地方。我似乎无法找到一个好的方法来获得我最后输入的任何成绩。我只想要一个“你输入###,###,###,”或类似的东西,但最多可以有100个数字。以下是我到目前为止的内容

#include <stdio.h>

#define MAX_ARRAY_SIZE 100

int main(void) {
    int grade[MAX_ARRAY_SIZE];
    int entryCount = 0;
    char continueResponse;
    printf("Enter an grade of between 1 and 100. \n");
    printf("Enter a maximum of %d grades. \n", MAX_ARRAY_SIZE);
    int i;
    for(i = 0; i < MAX_ARRAY_SIZE; i++) {
        printf("Enter grade: ");
        scanf("%d", &grade[i]);
        printf("Continue? (y/n): ");
        scanf(" %c", &continueResponse);
        entryCount++;
        if(continueResponse == 'n' || continueResponse == 'N') {
            printf(" == End of Data Entry ==\n\n");
            break;
        }
    }
    return 0;
}

请记住,这是第三周这样做,所以我几乎什么都不知道。如果有一个“为什么你这样做”,那么答案是因为我之前已经完成了它并且它的工作原理。我很感激任何意见!

3 个答案:

答案 0 :(得分:0)

在dataentry循环之后:

   for(i = 0; i < MAX_ARRAY_SIZE; i++) {
       ...
   }

你只需要添加第二个循环:

   for(i = 0; i < entryCount; i++) {
       printf ("%d ", grade[i]);
   }

答案 1 :(得分:0)

您已将entryCount个条目记录到数组中,编号为0 ... entryCount - 1;你将使用另一个for循环来打印它们。为了更好的格式化,我们不会在最后一个数字后打印“,”:

printf("You've entered ");
for (i = 0; i < entryCount; i++) {
    if (i == entryCount - 1) {
        printf("%d", grade[i]);
    }
    else {
        printf("%d, ", grade[i]);
    }
}
printf("\n");

答案 2 :(得分:0)

我对您的问题的理解以下代码将起作用:

#include <stdio.h>
#define MAX_ARRAY_SIZE 100
int main(void) {
int grade[MAX_ARRAY_SIZE];
int entryCount = 0;
char continueResponse;
printf("Enter an grade of between 1 and 100. \n");
printf("Enter a maximum of %d grades. \n", MAX_ARRAY_SIZE);
int i;
for(i = 0; i < MAX_ARRAY_SIZE; i++) {
printf("Enter grade: ");
scanf("%d", &grade[i]);
printf("Continue? (y/n): ");
scanf(" %c", &continueResponse);
entryCount++;

printf("you entred:\n");
for(int j=0;j<entryCount;j++)
{
    printf("%d ",grade[j]);

}

if(continueResponse == 'n' || continueResponse == 'N') {
    printf(" == End of Data Entry ==\n\n");
    break;
    }
}
return 0;
}