在字符串中,我们可以通过" \ 0"知道最后一个字符串,但是我怎么知道数组的下一个空闲位置。我把代码放在这里:
#include <stdio.h>
int main(){
int notes[10];
int i, usuari;
printf("Put a number");
scanf("%i", &usuari);
for (i=0;i<usuari;i++){
scanf("%i", ¬es[i]);
}
}
用户将给出一个数字(变量usuari
)。我怎么知道用户给出的数字旁边的位置是免费的?我怎么打印出来?
答案 0 :(得分:1)
您通常要做的是将数组初始化为一些永远不会输入的值,例如-1。因此,您可以定义如下注释:
int notes[10] = {-1};
然后你可以在使用之前检查notes [i] == -1。但是,我只是猜测unused
的意思。
编辑:
如上所述,上面只初始化第一个元素。你实际上必须初始化这样的笔记:
int notes[10] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,};
或循环
答案 1 :(得分:0)
使用终端值,类似于C中的字符串如何使用终值来指示结束...或存储下一个值的位置,类似于循环知道存储下一个值的位置。
假设您将i
的初始化移到循环之外,并将用户输入包装成嵌套循环,如下所示:
#include <stdio.h>
int main(){
int notes[10];
int i = 0, usuari;
for (;;) {
printf("Put a number");
scanf("%i", &usuari);
for (;i<usuari;i++){
scanf("%i", ¬es[i]);
}
}
}
最内层循环如何知道存储下一个值的位置?在变量生命周期的持续时间内存储并递增位置......当然,你要存储长度,是吗?