0

我正在研究一个常规的 C 程序,它计算输入的数量并相应地对它们进行分类。我现在还没有为它编写任何代码,因为我仍在考虑如何去做,所以我会尽力解释。

作为我想使用这个程序的一个例子,假设我希望它计算人们的投票数。我只对人口统计感兴趣,而不是实际投票。因此,用户使用个人选票输入每个人的性别和年龄,然后将其添加到最后的总数中,并在男性和女性之间进行统计。每个年龄段都会分配一个字符来帮助计算。例如年龄 0-20 = A,21-40 = B,41+ = C。然后,会有一个像 X0 这样的输入来结束计数:

所以它看起来像这样,将性别和年龄作为用户输入(忽略项目符号):

  • 输入性别和年龄:男 17
  • 输入性别和年龄:女 20
  • 输入性别和年龄:男 30
  • 输入性别和年龄:女 46
  • 输入性别和年龄:男 35
  • 输入性别和年龄:X0
  • 男:ABB
  • 女:交流
  • 总计:5

我正在考虑使用 while、for 和 do while 循环来完成此任务,因为我仍在学习该语言,但我很难做到这一点。

如果你们有任何建议,将不胜感激。

谢谢

4

2 回答 2

1

您可以使用 switch 语句和 if 并使用计数器来计算选票。我会这样处理问题。试着在纸和笔上做一点,写一点代码我相信一旦你开始用纸和笔你就会得到它。同样对于排序,您可以使用一个可以处理的循环。

于 2013-03-11T05:03:34.310 回答
0

您可能应该直接潜入并以您知道的方式编写它。早期的编码经验非常有用。如果你能得到一些你描述的东西,你会在这个过程中学到很多东西。

要像您描述的那样在一行上获得输出和输入,您可能需要fflush(stdout);在.printfscanf

顺便说一句,终止用户对程序的输入的常用策略是使用 EOF 代码(在 Unix/Linux 中为 ctrl-D,在 Windows 中为 ctrl-Z)。scanf如果遇到 EOF 而不是更多的键盘敲击,将返回负值。

也就是说,作为更广泛的策略,我建议您开始考虑将这类程序视为非交互式的。想象一下,如果程序不需要每次都检查问卷,而是直接从文件中读取数据。而不是完整的单词,它会有单字母代码,看起来更像

M 17
F 20

程序只是进行了计数。那不是更容易编写和使用吗?

于 2013-03-11T05:06:02.343 回答