我被要求构建一个接收未知数量的正值和负值的C语言程序,在输入结束时,我不知道什么时候,我需要按输入的顺序打印它们,不包括重复
例如:
Input: 1 8 9 3 3 5 8 -9 1
Output: 1 8 9 3 5 -9
如果不知道输入何时结束,我该怎么办?
另外 - 我如何进行这项运动?
我很乐意找到方向......我知道我们使用malloc
函数
答案 0 :(得分:1)
我宁愿建议使用%d
格式说明符(int
类型足够?)和单int
变量的循环scanf()
。你需要检查它的返回值,它应该是一个,除非没有更有效的输入(考虑通过feof
检查你需要检测它已经停止的原因)。然后你需要:
答案 1 :(得分:0)
您可能会收到EOF
(文件结尾)字符。您可以使用此常量来检查它:
//get input
if(input == EOF) {
// print numbers
}
要在基于UNIX的计算机上进行测试,请在键入所有数字后按Ctrl + D.此命令将发送EOF字符。
答案 2 :(得分:0)
您可以使用realloc来减小数组的大小。