如何将数组放入int但使用scanf

时间:2018-10-15 05:51:01

标签: c arrays printf scanf

问题是输入的是我们有多少个案例以及我想在每种情况下打印多少时间

示例

#include<stdio.h>

int main(){
    int T, N[ 10 ], start, go;

    scanf("%d", &T);
    for( start = 1 ; start <= T ; start++ ){
        scanf("%d", &N[ start ]);
    }   
    for( go = 1 ; go <= T ; go++ ){
        printf("Case #%d:\n", go);

        for( start = 1 ; start <= N[ start ] ; start++ ){
            printf("I will become a good boy.\n");
        }
    }
    return 0;

}

2 个答案:

答案 0 :(得分:1)

您需要为N动态分配内存

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

int main(void) 
{
    int T, start, go;
    int* N;

    printf("Please enter, How many entries do you want: \n");
    scanf("%d", &T);

    N = malloc(sizeof(int*) * T);

    for (start = 0; start < T; start++) 
    {
        scanf("%d", &N[start]);
    }

    for (go = 0; go < T; go++) 
    {
        printf("Case #%d:\n", go);

        for (start = 0; start < N[go]; start++) 
        {
            printf("I will become a good boy.\n");
        }
    }

    free(N);

    return 0;
}

答案 1 :(得分:0)

根据该代码,我假设T为案件数。只是动态分配该数组。

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

int main()
{
   int T, start, go;
   int* N;
   scanf("%d", &T);
   N = (int*) malloc(T * sizeof(int));
   for( start = 1 ; start <= T ; start++ )
   {
      scanf("%d", &N[ start ]);
   }
   for( go = 1 ; go <= T ; go++ )
   {
      printf("Case #%d:\n", go);
      for( start = 1 ; start <= N[ start ] ; start++ )
      {
         printf("I will become a good boy.\n"); 
      }
   }
   free(N);
   return 0;
}
相关问题