【发布时间】:2016-10-14 19:45:10
【问题描述】:
#include "stdafx.h"
#include "stdio.h"
#include <string.h>
void main() {
int Results[8];
int i = 0;
int max = 0;
int maxindex;
printf("Enter the results of your 7 leavin cert subjects: ");
do {
printf("\nSubject %d: ", i + 1);
scanf_s("%d", Results);
i++;
} while (i < 7);
for (i < 7; Results[i] > 0; i++)
if (Results[i] > max)
max = Results[i];
printf("The best grade is %d", max);
}
你好,所以基本上我正在尝试使用 for 循环打印出最大的数字(最佳结果)。但是它一直告诉我最好的结果是 0。
有谁知道我做错了什么。任何帮助将不胜感激。
【问题讨论】:
-
你认为
scanf_s("%d", Results)会做什么? -
scanf_s("%d", Results);在每个循环中输入相同的元素 - 索引 0,因为数组标识符衰减为指向第一个元素的指针。 -
此外,
for (i < 7; Results[i]>0; i++)给出了编译器警告,因为启动条件可能不是您想要的。 -
我建议你拿出一张纸,创建一个有行有列的表格。在每列的顶部,放置一个变量的名称。对于每一行,仔细检查每一行代码并写下每个变量的值。现在使用调试器查看您的表是否正确。
标签: c arrays for-loop while-loop int