共有回帖数 0 个
-
刚学c的大一生,基本每天晚上都来这逛逛。
在大约一两个星期前看到一个求精简的代码(九九乘法表),当时觉的可能自己哪天就会做这个就顺手保存了下来参考下,后来拿到学校机房后自己仔细看了下,发现是竟然自己能精简,激动不已,希望各位高手前辈们不要笑话。原代码如下(Turboc2)
#include "stdio.h"
main()
{
int n,i;
n=1;
while(n=9)
{
printf("%8d",n);
n++;
}
printf("n");
n=1;
while(n=72)
{
printf("%c",'-');
n++;
}
printf("n");
n=1;
while(n!=2)
{
printf("%2d*1==%d",n,n*1);
n++;
}
printf("n");
n=1;
while(n!=3)
{
printf("%2d*2==%d",n,n*2);
n++;
}
printf("n");
n=1;
while(n!=3)
{
printf("%2d*3==%d",n,n*3);
n++;
}
printf("%3d*3==%d",n,n*3);
printf("n");
n=1;
while(n!=3)
{
printf("%2d*4==%d",n,n*4);
n++;
}
printf("%3d*4==%d",n,n*4);
printf("%2d*5==%d",n,n*5);
printf("n");
n=1;
while(n!=6)
{
printf("%2d*5==%d",n,n*5);
n++;
}
printf("n");
n=1;
while(n!=7)
{
printf("%2d*6==%d",n,n*6);
n++;
}
printf("n");
n=1;
while(n!=8)
{
printf("%2d*7==%d",n,n*7);
n++;
}
printf("n");
n=1;
while(n!=9)
{
printf("%2d*8==%d",n,n*8);
n++;
}
printf("n");
n=1;
while(n!=10)
{
printf("%2d*9==%d",n,n*9);
n++;
}
printf("n");
}
以下是我自己修改的
#include"stdio.h"
void main()
{
int n,i=1;
while(i!=10)
{
printf("%8d",i);
i++;
}
printf("n");
while(i!=82)
{
printf("_");
i++;
}
printf("n");
for(i=1;i=9;i++)
{
for(n=1;n=i;n++)
printf("%d*%d=%dt",n,i,n*i);
printf("n");
}
}
#include stdio.h
int main()
{
int i, j;
for (i = 1; i 10; ++i)
{
for (j = 1; j = i; ++j)
printf("%d*%d=%-2d ", i, j, i * j);
putchar('n');
}
return 0;
}
精简
#include stdio.h
int main(void)
{
int n,i=1;
for (; i10; i++)
printf("%8d", i);
for (putchar('n'); i82; i++)
printf("_");
for (putchar('n'), i=1; i=9; i++)
{
for (n=1; n=i; n++)
printf("%d*%d=%dt",n,i,n*i);
printf("n");
}
return 0;
}
再简化
#include stdio.h
main(_1,_)
{
for(_=1;_10;printf("%-8d",_++));
for(puts("");_72;_+=printf("_"));
for(_1=puts(""),_/=_;_1++_||(_9&&(_=-~_,_1=puts("")+1));printf("%d*%d=%dt",_1,_,_1*_));
}
Ureys,你的程序还可以精简成这样:
#includestdio.h
int b=1;
main(a){
b-10&&printf("%d*%d=%-4d",a,b,a*b)&&a=b?putchar(10),b=a+1,main(1):main(a+1);
}
return 括号,能去掉的就去掉
-------
我的:
因为“__”占两个字节,就显得长了,现在改为r,一个字节
#includestdio.h
int r;
main(_){
++r,printf("%d*%d=%-4d",r,_,_*r),_r?main(_):++_^putchar(10)&&(r=0,main(_));
}
Ureys,你的程序还可以精简成这样:
#includestdio.h
int b=1;
main(a){
b-10&&printf("%d*%d=%-4d",a,b,a*b)&&++ab?putchar(10),b=a,main(1):main(a);
}
-------
我的:
#includestdio.h
int r=1;
main(_){
printf("%d*%d=%-4d",r,_,_*r),_=r++?r=1,++_^putchar(10)&&main(_):main(_);
}
赢了1个字节…��
楼主 2016-01-23 11:25 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知