user-0 提问: 打印九九乘法表，要求只能用一个变量

回复:
user: user-1
content: c语言实现打开指定网址谁会？如何实现？

user: user-2
content: 引用 楼主 z542858367 的回复:c语言要求最多只能用一个变量打印出九九乘法表。 顶，不过好想笑啊

user: user-3
content: 学生党，有不足的请不要喷

user: user-4
content: 引用 1 楼 mujiok2003 的回复:九九乘法表是个不变的，何必用变量。  int main() { char const* const tbl = "1×1=1\n"  "1×2=2 2×2=4\n"  "1×3=3 2×3=6 3×3=9 \n"  "1×4=4 2×4=8 3×4=12 4×4=16\n"   "1×5=5 2×5=10 3×5=15 4×5=20 5×5=25\n"   "1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36\n"   "1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49\n"   "1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64\n"   "1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81"; puts(tbl);   return 0; }   顶

user: user-5
content: 引用 1 楼 mujiok2003 的回复:九九乘法表是个不变的，何必用变量。  int main() { char const* const tbl = "1×1=1\n"  "1×2=2 2×2=4\n"  "1×3=3 2×3=6 3×3=9 \n"  "1×4=4 2×4=8 3×4=12 4×4=16\n"   "1×5=5 2×5=10 3×5=15 4×5=20 5×5=25\n"   "1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36\n"   "1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49\n"   "1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64\n"   "1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81"; puts(tbl);   return 0; }  必须顶这个

user: user-6
content: 15楼的好强

user: user-7
content: #include <stdio.h> int main() {     for(int a=16;(a>>4)<=9;a+=16)         {             a&=0xF0;             a|=1;             for(;(a&15)<=(a>>4);a++)             {                 printf("%dx%d=%d\t",a>>4,a&15,(a>>4)*(a&15));             }         printf("\n");         }     return 0; }    虽然这问题早已经结束，但拿来练习一下位操作还是蛮不错的

user: user-8
content: 引用 22 楼 jiyy7758521 的回复:#include <stdio.h> main() {     int i;//取一个变量，用变量的十位代表另一变量，注意个位每次要归1     i=0;     for(i=11;i<92;i+=10)    {        for(;i%10<=i/10;i++)        {             printf("%d*%d=%d ",i/10,i%10,(i/10)*(i%10));         }         i=i/10*10+1;         printf("\n");      }  }  #include <iostream> using namespace std; int main() {     int i;   for (i=11;i<100;i++)    {    	if (i%10==0);    	 else if (i/10>=i%10)    	      cout<<i%10<<"*"<<i/10<<"="<<i/10*(i%10)<<"   ";    	if (i%10==9)    	cout<<endl;    }    return 0; }修改了一下，也可以，感觉方法挺好的

user: user-9
content: { int i,j; for(i=1;i<10;i++) { for(j=1;j<i+1;j++) 	    printf("%d*%d=%d\t",i,j,i*j);  }  printf("\n",i); }   }

user: user-10
content: 横看成林侧成峰！学习！

user: user-11
content: std:: cout<<i;  应该是这个也不算什么死循环

user: user-12
content: 引用 16 楼 max_min_ 的回复:[quote=引用 8 楼 vrace 的回复:]  #include <stdio.h> #include <stdlib.h>  int main(void) { 	int a; 	 	for (a = 0x11; a < 0xa0; a++) 	{ 		for (a = (a & 0xf0) + 1; (a & 0x0f) <= ((a & 0xf0) >> 4); a++) 		{ 			printf("%dx%d=%d\t", 				(a & 0x0f), 				(a & 0xf0) >> 4, 				((a & 0xf0) >> 4) * (a & 0x0f)); 		} 		a += 0x10; 		printf("\n"); 	} 	 	return 0; }   这个应该能满足你的要求... [/quote]   膜拜啊！

user: user-13

user: user-14
content: 引用 208 楼 u011371360 的回复:[quote=引用 38 楼 qweiu 的回复:] [quote=引用 23 楼 jiyy7758521 的回复:] //突然想到一个更简单的 这个错的 全部打印： 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1= 这样就对了嘛！[/quote]  #include <stdio.h> main() {     int i;//取一个变量，用变量的十位代表另一变量，注意个位每次要归1     i=0;     for(i=11;i<100;i++)    {        if(i%10==0||i%10>i/10)        {             printf("\n");             i=(i/10+1)*10+1;         }        printf("%d*%d=%d ",i/10,i%10,(i/10)*(i%10));      } 	printf("\n");  }

user: user-14
content: 引用 38 楼 qweiu 的回复:[quote=引用 23 楼 jiyy7758521 的回复:] //突然想到一个更简单的 #include <stdio.h> main() {     int i;//取一个变量，用变量的十位代表另一变量，注意个位每次要归1     i=0;     for(i=11;i<100;i++)    {        if(i%10==0||i%10>i/10)        {             printf("\n");             i=i/10*10;         }        printf("%d*%d=%d ",i/10,i%10,(i/10)*(i%10));      }  } 这个错的 全部打印： 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=1 1*0=0 1*1=[/quote] 这样就对了嘛！

user: user-15
content: 引用 8 楼 vrace 的回复: #include <stdio.h> #include <stdlib.h>  int main(void) { 	int a; 	 	for (a = 0x11; a < 0xa0; a++) 	{ 		for (a = (a & 0xf0) + 1; (a & 0x0f) <= ((a & 0xf0) >> 4); a++)     //这里的a++有啥用？？？倒数第三行的a+=0x10是不是可以放在这里 		{ 			printf("%dx%d=%d\t", 				(a & 0x0f), 				(a & 0xf0) >> 4, 				((a & 0xf0) >> 4) * (a & 0x0f)); 		} 		a += 0x10; 		printf("\n"); 	} 	 	return 0; }   这个应该能满足你的要求...

user: user-16
content: 1楼相当霸气

user: user-17
content: 引用 165 楼 KenZhang1031 的回复:#include <stdio.h>  void main(void) { 	int i;  	for(i=11; i<100; i++) 	{ 		if((i % 10) != 0) 		{ 			if((i % 10) <= (i / 10)) 			{ 				printf("%dx%d=%d   ", i % 10, i / 10, (i % 10) * (i / 10)); 			} 		} 		else 		{ 			printf("\n"); 		} 	} } 神一般的存在，用%d省去小数部分，好聪明的想法

user: user-17
content: 引用 134 楼 gaoshou998 的回复:我还是觉得我这个简单 python写的  def A(n):     if 0< n <= 9:         A(n-1)         for i in range(1,n+1):             print "%2sx%2s=%2s"%(i,n,i*n),         print  A(9)  >>>   1x 1= 1  1x 2= 2  2x 2= 4  1x 3= 3  2x 3= 6  3x 3= 9  1x 4= 4  2x 4= 8  3x 4=12  4x 4=16  1x 5= 5  2x 5=10  3x 5=15  4x 5=20  5x 5=25  1x 6= 6  2x 6=12  3x 6=18  4x 6=24  5x 6=30  6x 6=36  1x 7= 7  2x 7=14  3x 7=21  4x 7=28  5x 7=35  6x 7=42  7x 7=49  1x 8= 8  2x 8=16  3x 8=24  4x 8=32  5x 8=40  6x 8=48  7x 8=56  8x 8=64  1x 9= 9  2x 9=18  3x 9=27  4x 9=36  5x 9=45  6x 9=54  7x 9=63  8x 9=72  9x 9=81 >>>  n和i2个了。。。

user: user-18
content: 九九表无非就是被乘数和乘数均为一位数，我们构造一个两位数的数列x, 则（x/10）得到被乘数，（x%10)得到乘数，跳过乘数为0的不就可以了  for(x=11; x<100; x++) {      if(x%10==0)        continue;     printf("% d", (x/10)*(x%10)); ....... } 格式控制我就不讨论了