| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3723 人关注过本帖
标题:求救--VC++基本程序代码
只看楼主 加入收藏
orzorz
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2008-6-25
收藏
得分:0 
starwing能否告诉我那个欧拉定理?
2008-06-25 14:37
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
那个吗?你自己去问FancyMouse吧,数学我超级菜鸟……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:38
界水乘风
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-25 14:40
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
嘿嘿~~~~可是main的确只需要四行嘛~~~~
不过,你觉得做工程,会出这么弱智的工程给你做么?
就算是做工程吧。不骗你,AStyle的main函数就是这么个写法。只不过比我这个复杂多了而已。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:41
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
关键在于Practise的写法,只写了8行而已。我开始太高估C的输入输出了- -如果要我用C++式的输入输出,真的有把握30行搞定呢……我写个STL标准运算到运算符的映射可以省掉Calc函数,单纯cin::IntegerIterator可以省掉InputNum函数,所以算下来绝对30行搞定……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:44
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
如果非要说main函数可读性不高的话,可以这么写:
    while (CLS(),printf(MENU),n=getchar(),n!='0')
        if (n>='1' && n<='4')while (Practise(n-'1'));

长度是一样的- -

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:48
orzorz
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2008-6-25
收藏
得分:0 
完全可以做到一行
只不过懒的写库函数定义了
#include<stdio.h>
#include<stdlib.h>
char op[]="+-*/",*right[]={"你真聪明!","继续保持!","加油!"},*wrong[]={"再想一想,你还有两次机会。","不要着急,要把握住最后一次机会喔!","要加强练习喔!"};int Calc(int* n1,int pn,int* n2){switch (op[pn]){case '+':return *n1 + *n2;case '-':return *n1 - *n2;case '*':return *n1 * *n2;case '/':*n2=rand()%10;*n1=*n2*(rand()%10+1);return *n1 / *n2;}return 0;}int InputNum(){int n;while (scanf("%d",&n) != 1){while (getchar()!='\n');puts("对不起,请重新输入!");}while (getchar()!='\n');return n;}int Practise(int pn){int n1=rand()%100+1,n2=rand()%100+1,ans=Calc(&n1,pn,&n2),i;for(printf("%d %c %d = ?\n",n1,op[pn],n2),i=0;i<3 && InputNum()!=ans;i++)printf("不正确,%s\n",wrong[i]);if(i==3)printf("正确答案是%d.\n",ans);else printf("正确,%s\n",right[i]);printf("是否继续练习?(Y/N)");return getchar()=='y';}int main(n){while(system("cls"),printf("***************************************************\n           小学生四则运算练习系统\n***************************************************\n               1--加法练习\n               2--减法练习\n               3--乘法练习\n               4--除法练习\n               0--退出\n请选择(0--4):"),(n=getchar())!='0')if(n>='1' && n<='4')while(Practise(n-'1'));return 0;}
2008-06-25 14:50
orzorz
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2008-6-25
收藏
得分:0 
再缩一下:
#include<stdio.h>
#include<stdlib.h>
char op[]="+-*/",*right[]={"你真聪明!","继续保持!","加油!"},*wrong[]={"再想一想,你还有两次机会。","不要着急,要把握住最后一次机会喔!","要加强练习喔!"};int Calc(int* n1,int pn,int* n2){switch (op[pn]){case '+':return *n1 + *n2;case '-':return *n1 - *n2;case '*':return *n1 * *n2;case '/':*n2=rand()%10;*n1=*n2*(rand()%10+1);return *n1 / *n2;}return 0;}int InputNum(){int n;while (scanf("%d",&n) != 1){while (getchar()!='\n');puts("对不起,请重新输入!");}while (getchar()!='\n');return n;}int Practise(int pn){int n1=rand()%100+1,n2=rand()%100+1,ans=Calc(&n1,pn,&n2),i;for(printf("%d %c %d = ?\n",n1,op[pn],n2),i=0;i<3 && InputNum()!=ans;i++)printf("不正确,%s\n",wrong[i]);if(i==3)printf("正确答案是%d.\n",ans);else printf("正确,%s\n",right[i]);printf("是否继续练习?(Y/N)");return getchar()=='y';}int main(n){while(system("cls"),printf("***************************************************\n%11c小学生四则运算练习系统\n***************************************************\n%15c1--加法练习\n%15c2--减法练习\n%15c3--乘法练习\n%15c4--除法练习\n%15c0--退出\n请选择(0--4):",' ',' ',' ',' ',' ',' '),(n=getchar())!='0')if(n>='1' && n<='4')while(Practise(n-'1'));return 0;}
2008-06-25 14:53
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
咳咳……事实上,这代码我可以一行写完……不过有什么意义呢?
在保持良好代码风格的前提下,代码行数最短。


谢谢。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:55
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
还有,LS的LS的代码是3行,不是一行,哈哈哈~~~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 14:56
快速回复:求救--VC++基本程序代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018489 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved