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

    另外,除法运算到小数点后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
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 2# 的帖子
晕~~
哥们,您去作作这些题,我不用纸算都算不出来,特别是乘除运算,你不信你试试?

小孩子,我看得上初中的“小孩儿”~~
2008-03-10 20:52
广陵绝唱
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
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 12# 的帖子
请问您有什么办法让这个随机数“软化”一下么?
2008-03-10 22:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
谢谢楼上几位的建议与意见,特别是极光与19楼的朋友,偶会多多改进,并努力学习。
2008-03-11 20:54
快速回复:自己写的一个练习程序
数据加载中...
 
   



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

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