【问题标题】:Create multiple arrays with names consisting of both a letter and a number in C?在C中创建多个名称由字母和数字组成的数组?
【发布时间】:2022-10-14 23:24:10
【问题描述】:

我想创建 10 个 1D 数组,其名称包括 一个字母,比如 A,和一个 C 中的数字。然后,通过使用循环,我想为这些数组赋值。例如:

for(j=1; j<=10; j++){for(i=0; i<10; i++){A'j'[i]=i+1;}}

我怎样才能做到这一点? 先感谢您!!!

【问题讨论】:

  • “我想”的意思是“我的家庭作业是”,对吧?但我会说你想要这样做。如果你想使用循环,那么你想使用一个数组(或者,在这种情况下,一个数组的数组),这样你就可以直接做类似array[j][i] 的事情。您不能像您尝试的那样使用'A' 之类的常量即时构造变量名。
  • 你不能。当您运行程序时,变量的名称就消失了。你真正的任务是什么?你不能使用二维数组或一维数组的一维数组吗?
  • 变量名的存在仅仅是为了程序员的利益。不适用于用户,也不适用于最终的可执行文件。因此,在运行时生成变量名是无稽之谈——这不是编程的工作方式。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 嗨,谢谢大家。忙碌的蜜蜂,好吧我如何使用/分配一维数组的一维数组?

标签: arrays c loops numbers character


【解决方案1】:

您将无法使用预编译器创建循环,因此解决您的问题的一个想法是使用指针数组来访问十个一维数组。然而,通过使用二维数组,解决方案会更好。

#define OUTER_ARRAY_SIZE 10
#define INNER_ARRAY_SIZE 5

int main (void)
{
    /* Define ten 1D arrays with naming scheme <character><number> */
    int a0[INNER_ARRAY_SIZE], b1[INNER_ARRAY_SIZE], c2[INNER_ARRAY_SIZE], d3[INNER_ARRAY_SIZE], e4[INNER_ARRAY_SIZE], f5[INNER_ARRAY_SIZE], g6[INNER_ARRAY_SIZE], h7[INNER_ARRAY_SIZE], i8[INNER_ARRAY_SIZE], j9[INNER_ARRAY_SIZE];

    /* Define 1D array of pointers */
    int* array[OUTER_ARRAY_SIZE];

    /* Initialize: */
    array[0] = &a0[0]; /* or array[0] = a0; */
    array[1] = &b1[0]; 
    array[2] = &c2[0]; 
    array[3] = &d3[0]; 
    array[4] = &e4[0]; 
    array[5] = &f5[0]; 
    array[6] = &g6[0]; 
    array[7] = &h7[0]; 
    array[8] = &i8[0]; 
    array[9] = &j9[0];

    for( int count = 0; count < OUTER_ARRAY_SIZE; count ++ )
    {
        for( int inner = 0; inner < INNER_ARRAY_SIZE; inner++)
        {
            *(array[count]+inner) = count + inner + 1;
        }
    }
    
    
    for( int count = 0; count < OUTER_ARRAY_SIZE; count ++)
    {
        for( int inner = 0; inner < INNER_ARRAY_SIZE; inner++)
        {
            printf("%2d,", *array[count]+inner);
        }
        printf("
");
    }
    
    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2017-05-31
    • 1970-01-01
    相关资源
    最近更新 更多