发生两个模具的总和

时间:2018-08-24 10:49:58

标签: c

Widget _ = ListView.builder(
    itemBuilder: (BuildContext context, int index) {
      return ListTile(
          title: Text("Row $index"),
          trailing: (data[position]['value'] == 0)
              ? IconButton(icon: Icon(Icons.alarm), onPressed: () {})
              : null);
    });

为什么此代码不起作用?该程序必须对两个模具生成的所有随机数求和,然后打印出总和的出现。为什么不起作用?输出是这样的:

#include <stdio.h>
#include <stdlib.h>
#define SIZE 13

int main(){

    int die1, die2, sum, i, occurrences[SIZE], j=2;

    for(i=0; i<36000; i++){

        die1=1+rand()%6;
        die2=1+rand()%6;

        sum=die1+die2;

        ++occurrences[sum];
    }

    printf("%10s","Sums");

    for(i=1; i<=12; i++){
        printf("%4d", i);
    }

    printf("\n%10s","Occurrences");

    for(i=2; i<=12; i++){
        ("%4d",occurrences[i]);
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

  • 数组occurrences[SIZE]尚未初始化,并且具有不确定的值,因此加法++occurrences[sum];将调用未定义的行为。您应该像occurrences[SIZE] = {0}一样对其进行初始化。
  • ("%4d",occurrences[i]);行只是使用逗号运算符的表达式,并用括号括起来,因此不会进行打印。似乎应该在括号之前添加printf