我自己的数组中的随机整数AND字符

时间:2015-12-12 23:18:19

标签: c arrays random

所以我正在尝试创建我的第一个程序,而且我遇到了困难。基本上,我要做的是创建一个包含字符串/字符和整数的数组,从中我想让程序随机打印出它喜欢的任何内容。

22997

由于某种原因,这种方式无法正常运行,因为我得到17678for (i = 0; i < 7; i++) { printf("\n%d\n", test[i]); } 等的输出。

我的第二个问题是我的代码的另一部分。我正在尝试打印整个数组,我希望它可以打印成字符和整数。

"Hi"

这里我得到了所有的整数,但字符串"HelloTherefriend"我得到了ASCII值。有没有什么方法可以在数组中包含整数和字符并在同一循环中打印出来?另外,我怎么能在这个数组中使用一个短字符串,但我不能使用像<input type="number" ng-model="gameName.value"> 这样的东西?

在此会感激一些,因为它会对我有很大的帮助!

1 个答案:

答案 0 :(得分:4)

您不能像在C阵列中那样混合不同的类型。数组只能包含相同类型的值。您可以尝试使用union s的解决方案,但这可能超出了您的技能水平。更好地改变你的方法。试试这个:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {    
    const char *test[] = { "1", "2", "3", "444", "5", "Hi", "7" };
    int i, j;

    srand(time(NULL));

    for (j = 0; j < 7; j++) {
        if (isdigit((unsigned char)*test[i]))
            printf("%d\n", rand() % atoi(test[j]));
        else
            printf("%s\n", test[i]);
    }
    return 0;  // no need for parentheses here
}

请注意,rand实际上没有任何参数。