C 为什么我会收到;分段错误:11“;
当我在终端中运行这个程序时,它会简单地告诉我这是一个分段错误。这个程序读入一个名为DATA的文件。这是一个包含考试分数的txt文件。分数如下(如果相关的话):10 25 50 50 50 0 45 15 25 50 2 50 30 40C 为什么我会收到;分段错误:11“;,c,C,当我在终端中运行这个程序时,它会简单地告诉我这是一个分段错误。这个程序读入一个名为DATA的文件。这是一个包含考试分数的txt文件。分数如下(如果相关的话):10 25 50 50 50 0 45 15 25 50 2 50 30 40 #include <stdio.h> int main() { FILE *fp = fopen("DATA", "r"); //Opens the file DATA in read mode. int possible
#include <stdio.h>
int main()
{
FILE *fp = fopen("DATA", "r"); //Opens the file DATA in read mode.
int possibleScoreCounts[51] = {0};
int score;
while(!feof(fp))
{
fscanf(fp, "%d", &score);
possibleScoreCounts[score]++;
}
printf("Enter a score to check on the exam: ");
scanf("%d", &score);
while(score != -1)
{
int count = 0;
for(int i = 0; i < score; i++)
count = count + possibleScoreCounts[i];
printf("%d scored lower than %d\n", count, score);
printf("Enter a score to check on the exam: ");
scanf("%d", &score);
}
}
#包括
int main()
{
FILE*fp=fopen(“DATA”,“r”);//以读取模式打开文件数据。
int-possibleScoreCounts[51]={0};
智力得分;
而(!feof(fp))
{
fscanf(fp、%d、&score);
可能的帐户计数[分数]+;
}
printf(“输入分数以检查考试:”);
scanf(“%d”和分数);
while(分数!=-1)
{
整数计数=0;
for(int i=0;i
您的代码在c99
下编译,在for
我在我的系统上进行了测试,它可以正常工作(就逻辑而言)
这意味着某个特定功能
fopen
、fscanf
或scanf
失败-您必须检查错误值Don;t如果您输入的分数低于51
,是否使用?提及您作为输入提供的内容。检查fopen
的返回值。使用所有警告和调试信息编译:gcc-Wall-Wextra-g
。检查每个功能是否出现故障,尤其是fopen
。阅读您所使用的每一个文档。另请参阅@JGroven Well的可能副本,如果我们将每个segfault标记为这一个的副本。。。我们可以这样关闭(至少是C部分)