main()
{
int i,j,mul_count[16]={0},mul;
int *ptr;
ptr =&mul_count;
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
mul = j*i;
ptr = (ptr+(mul*4));
mul_count[mul] = ++*ptr;
}
for(i=1;i<=16;i++)
printf("mul_count[%d]=%d\n",i,mul_count[i]);
}
任何人都可以更正此代码。代码是我为1到4的所有可能组合生成多个,并递增该特定值的数组内容,即当我做2 * 2 = 4和4 * 1 = 4时,则应设置mul_count [4] 2等等,当我再次遇到4倍数时,它应该增加到3,依此类推。这必须对所有生成的倍数进行,相应的数组值应该递增
答案 0 :(得分:2)
我认为您对ptr
变量的使用没有任何意义。
此外,您的代码错过了内循环所需的括号{
和}
。你可以用这样的东西轻松逃脱:
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++) {
mul = j*i;
mul_count[mul]++;
}
}
答案 1 :(得分:2)
试试这个:
for(j=1; j<=4; ++j)
{
mul = j*i - 1;
mul_count[mul]++;
}