#include <stdio.h>
int main()
{
// 定义相乘数字i,j以及结果result
int i, j, result;
/*
* 使用for循环解决本题相对简单哦~
* 小编偷偷的将源码放在任务“不会了怎么办”中了哦~
* 小编希望童鞋们独立完成哦~
*/
for(i=9,j=1;j<=i;i--)
{
for(j=1,i=9;j<=i;j++)
{
result=i*j;
printf("%d*%d=%d\t",i,j,result);
}
printf("%d*%d=%d\n",i,j,result);
}
return 0;
}
你的代码看上去逻辑十分的混乱,i代表*号前边的数字,j代表*号后边的数字,result代表他们相乘的结果,一行一行的看,先分析第一行,你可以看到第一行i=9不变,第二行i=8,i的最后一行等于1,每一行的j逐渐增大,j的步值为1,且j的值最大不超过i,所以j<=i;这样可以使用一个外部循环描述i的变化,for(i=9;i>=0;i--),再嵌套一个走循环,实现J的逻辑for(j=1;j<=i;j++),外部循环执行一次,子循环需要全部执行完才能跳出循环再执行第二次的外部循环,依次类推,即可实现这个效果的逻辑,代码如下:
#include <stdio.h> int main() { // 定义相乘数字i,j以及结果result int i, j, result; /* * 使用for循环解决本题相对简单哦~ * 小编偷偷的将源码放在任务“不会了怎么办”中了哦~ * 小编希望童鞋们独立完成哦~ */ for(i=9;i>=0;i--) { for(j=1;j<=i;j++) { result=i*j; printf("%d*%d=%d\t",i,j,result); } printf("\n"); } return 0; }
如果帮到你,请采纳,谢谢!!!
你代码中的for循环i和j弄错了
for(i=9;i>=1;i--)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d",i,j,i*j);
printf(" ");
}
}