gpt4 book ai didi

c - 部分数组输出包含垃圾

转载 作者:行者123 更新时间:2023-11-30 16:21:00 25 4
gpt4 key购买 nike

我的大部分经验仅限于 DBA 功能的 SQL 脚本编写。我是一名安全专家,并在这些主题上为其他人提供帮助,但我正在学习 C 来帮助完成其他工作。我一直在看书,写小程序,并不断扩大难度。这是我第一次不得不寻求帮助。如果有人问这个问题,我很抱歉,但我首先进行了搜索,但没有找到任何东西。

到目前为止,我的程序始终只返回部分填充数组中的有效数据。尽管我使用了与之前成功使用过的相同的 for 语句,但这个特定的行为并不相同。在这一点上,我必须目光短浅,因为我似乎看不出它的失败之处。

如果输入少于 20 个,则 printf 输出将显示剩余值并显示垃圾。如果有人能够就我所忽略的内容提供一些指导,我将不胜感激。预先感谢您。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct grade
{
int id;
int percent;
};

#define maxCount 100

int main()
{
int *grade;
struct grade gradeBook[maxCount];
int count = 0;
char YN;
int i;

for(i = 0; i < maxCount; i++)
{
printf("Enter ID: ");
scanf("%d", &gradeBook[i].id);

printf("Enter grade from 0-100: ");
scanf("%d", &gradeBook[i].percent);
count++;

// Prompt to continue, break if done
printf("Do you want to Continue? (Y/N)");
scanf(" %c", &YN);
if(YN == 'n' || YN == 'N')
{
break;
}
}

void sort(struct grade gradeBook[],int cnt)
{
int i, j;
struct grade temp;

for (i = 0; i < (cnt - 1); i++)
{
for (j = (i + 1); j < cnt; j++)
{
if(gradeBook[j].id < gradeBook[i].id)
{
temp = gradeBook[j];
gradeBook[j] = gradeBook[i];
gradeBook[i] = temp;
}
}
}
}

printf("Grades entered and ordered by ID: \n");
for (i = 0; i < count; i++)
{
printf("\nID:%d, Grade: %3d\n", gradeBook[i].id,gradeBook[i].percent);
}
return 0;
}

最佳答案

If there are fewer than 20 inputs, the printf output displays the remaining values with garbage

你还期待什么?

如果您的输入少于 20 个,则其余输入不会被赋予任何值。您说“部分数组输入”,但实际上您要求计算机循环遍历整个数组。

实在不清楚您还期望这里发生什么。

也许会第二次循环count

关于c - 部分数组输出包含垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com