【问题标题】:How to store the numbers obtained from the rand() function in the for loop?如何将 rand() 函数获得的数字存储在 for 循环中?
【发布时间】:2014-09-06 16:11:09
【问题描述】:

请告诉我如何存储从g 获得的数字并打印出来:
示例:2,2,6

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

int main(int argc, char* argv[]) {
    int nrzaruri;
    int g;
    int valori;
    int array[g];
    printf("cate zaruri arunci?\n");
    scanf("%d", &nrzaruri);
    for (int i = 1; i <= nrzaruri; i++) {
        g = (rand() % 6) + 1;
        printf("zarul %d\n are valoarea %d\n", i, g);
    }
}

【问题讨论】:

  • 有些变量我没用过,跳过它们
  • 但也许你应该跳过它们!例如,名为array 的数组可以很好地使用(只要您正确初始化它)。
  • int array[6]={0}; .. array[g-1]++;int stock[nrzaruri] .. stock[i-1] = g

标签: c arrays for-loop


【解决方案1】:

如果我理解正确,您需要的是以下内容

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

int main(void)
{    
    int nrzaruri;

    printf( "cate zaruri arunci?\n" );
    scanf( "%d", &nrzaruri );

    int array[nrzaruri];

    for ( int i = 0; i < nrzaruri; i++ ) 
    {
        int g = ( rand() % 6 ) + 1;
        array[i] = g;
    }

    for ( int i = 0; i < nrzaruri; i++ ) 
    {    
        printf( "zarul %d\n are valoarea %d\n", i + 1, array[i] );
    }

    return 0;
}

您可以替换这两个语句

        int g = ( rand() % 6 ) + 1;
        array[i] = g;

为了这个

        array[i] = ( rand() % 6 ) + 1;

我只是使用了你的变量。

或者如果你需要在一行中输出数组的元素那么你可以使用下面的循环

int i = 0;
do
{    
    printf( "%d", array[i] );
} while (  ++i < nrzaruri &&  printf( ", " ) > 0 );

输出看起来像

2, 5, 4, 2, 6, 2, 5, 1, 4, 2

【讨论】:

  • 谢谢你写这篇文章;我正在争论是否应该编写更多或更少的代码。
  • 感谢您的回答,您能再告诉我一件事吗?在 printf("%d",%x) 中,%x 是什么意思?
  • @Alex Sturza 表示以十六进制表示法输出整数值。
猜你喜欢
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 2022-08-03
相关资源
最近更新 更多