【发布时间】:2016-12-04 01:35:59
【问题描述】:
我是 C 和一般编码方面的新手,所以请多多包涵。
我正在尝试创建一个“键盘测试”程序,其中用户必须通过在每个元素中输入 1 个字符的值来填充数组。然后将对数组的内容进行排序,printf 将显示哪些键被按下的次数最多(根据每个字符的使用次数)。我研究了两天无济于事(大多数解决方案都是针对 C++,而不是 C)。我在 Visual Studios 工作。这是我目前所拥有的:
#define _CRT_SECURE_NO_WARNINGS
#define PAUSE system("pause")
#define CLS system ("cls")
#define FLUSH flush()
#define MAXELEMENTS 25
#include <stdio.h>
#include <stdlib.h>
// prototyped functions
int pressKeys(char keys);
main() {
char keys[MAXELEMENTS];
int x;
pressKeys(&keys[MAXELEMENTS]);
PAUSE;
}
// functions
int pressKeys(char keys) {
printf("Enter characters: \n");
scanf("%c", &keys); FLUSH;
printf("You typed: %c\n", keys);
return(0);
}
这个程序的输出似乎是我输入的第一个字符,所以它的一部分正在工作,虽然它只显示了 keys[0] 中的内容。
如何让它存储输入的所有内容?
如何让 printf 输出完整的数组?
然后我将如何将数组传递给将对元素中的内容进行排序的函数?
(就主要和函数声明中的参数而言)。
【问题讨论】:
-
出于好奇,您是否反对为此使用 C++?您是在学习特定的 C 编程课程,还是只是想在学习续集之前先学习原版?
-
BTW
&keys[MAXELEMENTS]是最后一个元素的地址。 (而且它不使用:-) -
用户是在输入结束时在其他键之间输入回车键还是根本不输入?