我是C语言的初学者。如果我的问题是蹩脚的,请不要介意。在我写的这个程序中,当我第一次使用“for”循环时,我希望一个数组中只存储3个值,但它存储4个值,在接下来的“for”循环中,如预期的那样显示3个值。我的问题是为什么在第一个for循环中需要4个值而不是3个?
#include<stdio.h>
void main()
{
int marks[3];
int i;
for(i=0;i<3;i++)
{
printf("Enter a no\n");
scanf("%d\n",(marks+i));
}
for(i=0;i<3;i++)
{
printf("%d\n",*(marks+i));
}
}
删除\n
和i
可以在if语句中创建为for(int i=0;i
\n
在scanf
是问题
#include<stdio.h>
int main()
{
int marks[3];
int i;
for(i=0;i<3;i++)
{
printf("Enter a no\n");
scanf("%d",(marks+i));
}
printf("\nEntered values:\n");
for(i=0;i<3;i++)
{
printf("%d\n",*(marks+i));
}
return 0;
}
原因:
我期望只有3
值存储在数组中,但它存储4个值,并在下一个'for'循环中显示3个值。我的问题是为什么在第一个for循环中需要4个值而不是3个?
第一:否,它只存储3
number,而不存储4
数组中的数字marks[]
。
第二:有趣的是了解循环在i=0
到i时只运行三次
您的困惑在于为什么必须输入四个数字,这不是因为您循环运行了
4次
,而是因为
scanf()
函数仅在您输入非空格字符时返回(并且在按下一些enter键后,您输入了一个非空格字符的数字符号)。
要理解此行为,请阅读手册:
intscanf(constchar*格式,…)
:
一系列空白字符(空格、制表符、换行符等;请参见
isspace(3)
)。此指令匹配输入中任意数量的空白,包括无空白。
因为在第一个for循环中,在
scanf()
中,您已将\n
包含在格式字符串中,所以scanf()
仅在按数字输入(或非空格键)时返回。
scanf("%d\n",(marks+i));
^
|
new line char
会发生什么?
假设程序的输入为:
23 <--- because of %d 23 stored in marks[0] as i = 0
<enter> <--- scanf consumes \n, still in first loop
543 <--- scanf returns, and leave 542 unread,
then in next iteration 543 read by scanf in next iteration
<enter>
193
<enter> <--- scanf consumes \n, still in 3rd loop
<enter> <--- scanf consumes \n, still in 3rd loop
123 <--- remain unread in input stream
问题内容: 我正在尝试将sql数据库中的数据存储到数组中。目前我有这个: 问题是我有8行数据。我需要将数据库中的每个8个名称存储到一个数组中。当我尝试这个: 它不起作用。 问题答案: 您想要的是: 这会将所有8个名称存储在类似于以下内容的数组中:
我不知道用户会输入多少个数字,并且我需要程序在到达行尾时停止在数组中插入数字,因为在新行中用户会输入一个与此无关的数字。 例如: 用户可以输入: 1 5 7 8 9 5 4 或: 5 4 8 9 4 2 1 3 2 4 7 我需要的数组是,示例1:[1,5,7,8,9,5]
问题内容: 在此先感谢您的帮助。 好吧,这就是我的情况。我有一个Web系统,该系统基于超声波计创建的样本进行一些与噪声相关的计算。最初,数据库仅存储这些计算的结果。但是现在,我被要求也自己存储样本。每个样本只是一个300或600个数字的列表,每个数字都有一个小数。 因此,我想到的最简单的方法是在表中添加一列,该列存储给定样本的所有计算。此列应包含数字列表。 那么我的问题是:将这一数字列表存储在单列
我目前正在构建一个项目,其中我需要为每个用户保存一个字符串列表(他阅读的文章的网址)。 我正在使用带有sqlite的python烧瓶SQLalchemy。 我知道sqlite不支持数组,所以我正在考虑切换到另一个数据库,而不是sqlite,一个支持数组的数据库。 我想知道你会怎么做?哪个数据库支持数组,或者是否有更好的解决方法。
问题内容: 我是Java新手。我如何在HashMap中存储整数值数组,之后我将此HashMap写到txt文件中,但此刻目前不重要。我可以存储单个字段,但不能存储数组。有任何想法吗 ? 问题答案: 例如选一个 要不就
问题内容: 结果是 在哪里重复,因此哈希函数无法按预期工作。我将如何覆盖String数组的Hash方法。或就此而言,通用数组?有没有更好的方法来完成我要做的事情? 问题答案: 你不能 数组使用默认的基于身份的Object.hashCode()实现,无法覆盖它。不要在HashMap / HashSet中将数组用作键! 请改用一组列表。