因此,这里有关字母组合的问题:计划,以找到与手机键盘
在手机键盘,很多数字都与他们有联系的信件。例如,字母A,B和C与数字2相关联。编写一个接受数字作为输入的程序,并打印与该数字关联的所有可能的字母组合。例如,如果输入是n = 23,则可能的字母组合是AD,AE,AF,BD,BE,BF,CD,CE和CF.
我不知道该如何解决这个问题,但这里是我的想法和附带的程序。我的想法是,由于只有7个唯一的数字,我会查看用户键入的每个数字,如果它是新的,请执行一种按位操作的形式来记录它。因此,如果用户再次重复该号码,则存在某种内存。
然后,我会写一个程序来计算1的数量,因此,用户输入不同的唯一编号。
这里是我卡住的地方。我似乎无法弄清楚如何“存储”不同的数字,因为在编写程序时,事先并不知道用户将输入多少个数字。我真的不知道如何生成所有的组合,但我认为嵌套for循环可以做到这一点。
无论如何,我认为我的想法太复杂,应该更简单,因为我在初学者编程课程。我还没有学习过阵列。因此,关于如何解决这个问题的任何想法都非常感谢。
#include <stdio.h>
int main() {
int input, i, j, k = 0, count_1 = 0, count_2 = 0, integer, check, monitor = 0;
char alphabets;
printf("Enter number as input: ");
scanf("%d", &input);
if (input < 50 || input > 57) {
printf("Enter number as input: ");
scanf("%d", &input);
}
integer = input;
while (integer > 0) {
check = input % 10;
input = integer/10;
switch (check) {
case 2: monitor | (2 * 1); break;
case 3: monitor | (2 * 10); break;
case 4: monitor | (2 * 100); break;
case 5: monitor | (2 * 1000); break;
case 6: monitor | (2 * 10000); break;
case 7: monitor | (2 * 100000); break;
case 8: monitor | (2 * 1000000); break;
case 9: monitor | (2 * 10000000); break;
}
}
for(i = 0; i < 8; i++) {
if(i == 0) {
power = 1;
}
else {
for (j = 1; j <= i; j++) {
power *= 10;
}
}
}
while (k < 7) {
在你学习数组之前,将它看作一个练习似乎很残酷。您显示的代码不完整。您的代码需要处理43556(其中涵盖了HELLO以及其他可能性) - 也就是说,数字可以重复。 –
请查看如何创建MCVE([MCVE])。 –