#include <stdio.h>
#include <limits.h>
int main(void)
{
unsigned int x=1,y=1, shuru;
printf("请输入一个不大于%d的正整数\n此程序将为您呈现乘法表\n", INT_MAX);
scanf("%d", &shuru);
printf("此乘法表范围为%d*%d\n\n ", shuru, shuru);
for (; x <= shuru; x++)
{
printf("%d ",x);
}
for (; y <= shuru;++y)
{
printf("\n");
printf("%d", y);
for (; x <= shuru;++x)
{
printf(" %d", x*y);
}
x = 1;
printf("\n");
}
return (0);
}
你第21行放错位置了,应该放到循环之前。
改正后的代码:
#include <stdio.h>当然放到for里面也可以的
追问是因为在第一个for(第9行)中已经使x的值改变为输入值了???
追答x = 1;显然这个循环需要把x初始化为1吧
放到后面第一次就没有初始化到咯
因为前面的X++改变了X的值 就一个位置 还要加个X=1;
#include <stdio.h>
#include <limits.h>
int main(void)
{
unsigned int x=1,y=1, shuru;
printf("请输入一个不大于%d的正整数\n此程序将为您呈现乘法表\n", INT_MAX);
scanf("%d", &shuru);
printf("此乘法表范围为%d*%d\n\n ", shuru, shuru);
for (; x <= shuru; x++)
{
printf("%d ",x);
}
for (; y <= shuru;++y)
{
printf("\n");
printf("%d", y);
x=1;//这个位置
for (; x <= shuru;++x)
{
printf(" %d", x*y);
}
x = 1;
printf("\n");
}
return (0);
}