为什么用随机输出代替C语言中的输入?

为什么用随机输出代替C语言中的输入?,c,arrays,C,Arrays,这是C。因此,尝试将多个输入放入该数组,并在输出输入6356740“6356744 6356748 6356752”时继续获取类似的数字 #包括 #包括 int main() { 智力测验[4]; printf(“输入四个测验分数:”); scanf(“%d%d%d%d”、&测验[1]、&测验[2]、&测验[3]、&测验[4]); printf(“%d%d%d%d”、&测验[1]、&测验[2]、&测验[3]、&测验[4]); } 包含K个元素的数组从0到K-1进行索引。 (这在阵列的任何介绍中都

这是C。因此,尝试将多个输入放入该数组,并在输出输入6356740“6356744 6356748 6356752”时继续获取类似的数字

#包括
#包括
int main()
{
智力测验[4];
printf(“输入四个测验分数:”);
scanf(“%d%d%d%d”、&测验[1]、&测验[2]、&测验[3]、&测验[4]);
printf(“%d%d%d%d”、&测验[1]、&测验[2]、&测验[3]、&测验[4]);
}

包含K个元素的数组从0到K-1进行索引。
(这在阵列的任何介绍中都会提到。)
阅读或写作
测验[4]
有未定义的行为

如果要打印整数,不应将指针传递到
printf

int main()
{
    int quiz[4];

    printf("Enter four quiz grades: ");
    scanf("%d %d %d %d", &quiz[0], &quiz[1], &quiz[2], &quiz[3]);

    printf("%d %d %d %d", quiz[0], quiz[1], quiz[2], quiz[3]);
    return 0;
}

包含K个元素的数组从0到K-1进行索引。
(这在阵列的任何介绍中都会提到。)
阅读或写作
测验[4]
有未定义的行为

如果要打印整数,不应将指针传递到
printf

int main()
{
    int quiz[4];

    printf("Enter four quiz grades: ");
    scanf("%d %d %d %d", &quiz[0], &quiz[1], &quiz[2], &quiz[3]);

    printf("%d %d %d %d", quiz[0], quiz[1], quiz[2], quiz[3]);
    return 0;
}

您将数组定义为

智力测验[4]
这意味着第一个参考是
智力测验[0]
,第二个是
智力测验[1]
,第三个是
智力测验[2]
,最后一个是
智力测验[3]

在代码中,您引用的是第二、第三、第四和未定义的第五个条目。这一点很重要,因为您可能会破坏程序中的数据,从而导致未定义的结果

您看到的数字是指向数组中整数的地址的整数值。请注意,它们增加了4,这是整数的大小

此外,printf正在打印int的地址,而不是int本身。这行应该是


printf(“%d%d%d%d”,测验[0],测验[1],测验[2],测验[3])

您将数组定义为

智力测验[4]
这意味着第一个参考是
智力测验[0]
,第二个是
智力测验[1]
,第三个是
智力测验[2]
,最后一个是
智力测验[3]

在代码中,您引用的是第二、第三、第四和未定义的第五个条目。这一点很重要,因为您可能会破坏程序中的数据,从而导致未定义的结果

您看到的数字是指向数组中整数的地址的整数值。请注意,它们增加了4,这是整数的大小

此外,printf正在打印int的地址,而不是int本身。这行应该是


printf(“%d%d%d%d”,测验[0],测验[1],测验[2],测验[3])

如果输入的分数是数字,则四个位置的“%d”都可以。但如果您输入的是字母表,则应改为使用“%s”


正如Hogstrom和molbdnilo所说,数组的第一个条目是0,第二个条目是1,依此类推。因此,您必须使用&quick[0]而不是&quick[1]。。依此类推。

如果输入的分数是数字,则四个位置的“%d”都可以。但如果您输入的是字母表,则应改为使用“%s”


正如Hogstrom和molbdnilo所说,数组的第一个条目是0,第二个条目是1,依此类推。因此,您必须使用&quick[0]而不是&quick[1]。。等等。

如果不知道您是如何提供这些信息的,人们怎么知道为什么会发生这种情况呢。正如您使用的
“8923498”
,这使其成为字符串并将其分配给整数并不是一件明智的事情。它是什么并不重要,我只是输入了像1 2 3 4这样的数字,但仍然得到了这些数字。所以您知道为什么会发生这种情况吗?我不知道我这样做了。很抱歉,我是关于以下内容的网站的新手:
scanf(“%d%d%d%d”、&quick[1]、&quick[2]、&quick[3]、&quick[4])
测验[]
只有4个“槽”,在C中,数组索引从0开始,一直到(数组中的条目数-1)在不知道您是如何提供此输入的情况下,如何知道发生这种情况的原因。正如您使用的
“8923498”
,这使其成为字符串并将其分配给整数并不是一件明智的事情。它是什么并不重要,我只是输入了像1 2 3 4这样的数字,但仍然得到了这些数字。所以您知道为什么会发生这种情况吗?我不知道我这样做了。很抱歉,我是关于以下内容的网站的新手:
scanf(“%d%d%d%d”、&quick[1]、&quick[2]、&quick[3]、&quick[4])
测验[]
只有4个“槽”,在C中,数组索引从0开始,一直到(数组中的条目数-1)指针和数组一开始很混乱,但它们会自然而然地出现。如果这有用,请投票表决。祝你好运。指针和数组一开始很混乱,但它们会自然而然地出现。如果这有用,请投票表决。祝你好运。如果输入字符串,除了将
%d
更改为
%s
之外,还有更多的工作要做。还不清楚用户是否考虑输入字符串。你的第二段或多或少涵盖了其中一个问题;这不包括另一个大问题。是的,我同意。但考虑到“测验”这个词,我认为这只是一个没有安全考虑的学校项目。通常分数是以字母表的形式给出的,因此我给出了基本答案。顺便说一句,你能看看我最近针对自己情况提出的问题吗:如果输入字符串,除了将
%d
更改为
%s
,还有更多的工作要做。还不清楚用户是否考虑输入字符串。你的第二段或多或少涵盖了其中一个问题;这不包括另一个大问题。是的,我同意。但考虑到“测验”这个词,我认为这只是一个没有安全考虑的学校项目。通常分数是以字母表的形式给出的,因此我给出了基本答案。顺便说一句,你能看看我最近的问题吗