所以,我设法纠缠了一些代码以使我的程序部分工作。我的程序必须提示输入成绩(完成),循环重复直到打破(完成),并输入每个成绩的打印结果。最后一部分是我陷入困境的地方。我似乎无法找到一个好的方法来获得我最后输入的任何成绩。我只想要一个“你输入###,###,###,”或类似的东西,但最多可以有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;
}
请记住,这是第三周这样做,所以我几乎什么都不知道。如果有一个“为什么你这样做”,那么答案是因为我之前已经完成了它并且它的工作原理。我很感激任何意见!
答案 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;
}