| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3416 人关注过本帖, 1 人收藏
标题:自己写的一个练习程序
只看楼主 加入收藏
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
结帖率:94.74%
收藏(1)
 问题点数:0 回复次数:21 
自己写的一个练习程序
/*   
   程序进行到这里,还有个清除键盘缓存的问题,因为如果在输入运算符号的时候,如果输入的是字母,会接连运行几行程序,我记得论坛中有这样的程序代码,找找再说。

    另外,除法运算到小数点后6位,有些太长,没想出什么好的办法来把它缩短到小数点后2位。希望哪位能指点一下,
谢谢! 还有随机数,只能随机抽取整数么?不可以抽取浮点数么?还希望哪位再指点指点,再次谢谢!*/                                                                                    
                                            


#include<stdio.h>
#include<time.h>
#include<stdlib.h>
/*------------------------------------------------------加法运算*/
float jia(float x,float y)
{
       float m;
       m=x+y;
       return m;
}
/*----------------------------------------------------减法运算*/
float jian(float x,float y)
{
       float m;
       m=x-y;
       return m;
}
/*-----------------------------------------------------乘法运算*/
float cheng(float x,float y)
{
       float m;
       m=x*y;
       return m;
}
/*------------------------------------------------------除法运算*/
float chu(float x,float y)
{
       float m;
       m=x/y;
       return m;
}
/*-----------------------------------------------------运算函数*/
float yunsuan(float x,float y,char m)
{
        float z;
        if(m=='+')
               z=jia(x,y);
        else if(m=='-')
               z=jian(x,y);
        else if(m=='*')
               z=cheng(x,y);
        else  z=chu(x,y);
        return z;
}
/*######################################################主函数*/
int main(void)
{
        char a[7][200]={{"**********************************************************\n"},
                        {"您好,欢迎您来玩这个小游戏,它将会验证您的计算能力。 \n"},
                        {"请输入运算符:\n"},
                        {"请您输入您的结果:\n"},
                        {"您的运算正确!\n"},
                        {"太遗憾了,您错了。\n"},
                        {"请问您还继续吗?N退出,任意键继续:\n"} };
       float x,y,z,z1;
       char m;
       do
       {
               printf("%s \n %s \n %s \n\n",a[0],a[1],a[0]);
               do
               {
                       printf("%s\n",a[2]);
                       scanf("   %c",&m);
                       if(m!='+'&&m!='-'&&m!='*'&&m!='/')
                              printf("您的运算符有误,请重新输入。\n");
               }
               while(m!='+'&&m!='-'&&m!='*'&&m!='/');
               srand(time(NULL));            /*随机提取两个整数*/
               x=rand()%5000+0;
               srand(time(NULL)+100);
               y=rand()%5000+0;
               printf("%f %c %f = ",x,m,y);
               scanf("  %f",&z);
               puts(" ");
               z1=yunsuan(x,y,m);
               if(z1==z)
                       printf("%s\n",a[4]);
               else printf("%s\n",a[5]);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~退出或重来*/
               printf("%s\n",a[6]);
               scanf("   %c",&m);
      }
      while(m!='n'&&m!='N');
      printf("谢谢您的参与,欢迎下次再来。\n");


      getch();
}
搜索更多相关主题的帖子: 练习 缓存 小数点 键盘 
2008-03-10 20:21
litdot
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-9
收藏
得分:0 
好,可以给小孩子练练算术~~
2008-03-10 20:48
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
呵呵...成功的第一步是艰难的..敢于发表自己的作品更困难..让论坛留下每个努力得人足迹..让我们一起提高..呵呵

学习需要安静。。海盗要重新来过。。
2008-03-10 20:50
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 2# 的帖子
晕~~
哥们,您去作作这些题,我不用纸算都算不出来,特别是乘除运算,你不信你试试?

小孩子,我看得上初中的“小孩儿”~~
2008-03-10 20:52
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
帮你提示一下
1,清除输入缓存,可以用fflush,可以看看这个帖子:https://bbs.bccn.net/thread-202572-1-1.html
2,printf可以控制显示的小数位数,如printf("%.2f",f),就是两位小数
3.居然可以随机出整数,那再除以一个不能整除的数,不就是浮点数了吗?

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-03-10 21:13
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
楼主VC下出错了
2008-03-10 21:14
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
鼓励一下.
2008-03-10 21:19
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
代码的风格很好啊...加以算法的训练前途一片光明...还有注意书上的细节那是找工作得关键

学习需要安静。。海盗要重新来过。。
2008-03-10 21:24
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 5# 的帖子
1.清除缓存已解决。
2.printf中我也会控制,可是我现在愁的是我现在的程序中,如果x/y的结果是小数点后六位,我输入的也应该是后六位才能与它对应。比如说:结果是0.12345
我也得输入这些数字才算正确,我现在想,如何能输入0.12便算结果正确。
3.我试试,按原理来讲,应当可行。

谢谢。


PS:谢谢#6的哥们,请您能告诉我是哪的错误和错误的原因么?我下回好注意,谢谢。
2008-03-10 21:27
xiaoyaox45y
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-17
收藏
得分:0 
不错啊,编程习惯很好哦
向你学习!

水藏凶险,山露杀机
2008-03-10 21:38
快速回复:自己写的一个练习程序
数据加载中...
 
   



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

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