| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1316 人关注过本帖
标题:小弟刚学c,碰到一个感觉很难的题,哪位大哥可以帮忙解答下,谢谢!!
只看楼主 加入收藏
lwbok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
小弟刚学c,碰到一个感觉很难的题,哪位大哥可以帮忙解答下,谢谢!!
制作一个可供小学数学运算的程序。
0—100 整数加减乘除四则运算,如结果为小数四舍五入保留小数点后两位。
根据输入题数出题,题目应为随机,每次应不一样。
如:题目数=3
77-55=
33*3=
100/3=
判断是否正确,如不正确给出正确答案,并计算分数,分数为正确题目的
百分比(四舍五入取整数)。
如:77-55= 22 对
33*3= 99 对
100/3= 33 错
结果应为 33.33
分数为:67 分
给分原则:随机出题 5 分
判断对错并给成绩 5 分
其它(界面美观,操作便捷,有错误提示,程序无 bug)


[ 本帖最后由 lwbok 于 2010-7-6 00:06 编辑 ]
搜索更多相关主题的帖子: 感觉 解答 
2010-07-05 23:43
lwbok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-5
收藏
得分:0 
我一个同学问我,我也是去年学的c,现在都忘得差不多了,所以请哪位帮助下!
2010-07-06 00:00
madao
Rank: 2
等 级:论坛游民
帖 子:11
专家分:14
注 册:2010-6-30
收藏
得分:0 
可以改为:100/3.0
或者强制类型转换:(float)(100/3),打印时:%.2f就好啦
2010-07-06 00:01
lwbok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-5
收藏
得分:0 
回复 3楼 madao
这个啊?不是几位小数的问题,现在我都不知道怎么随机生成数字了

不过还是谢谢你支持哈,O(∩_∩)O~
2010-07-06 00:08
唐门黄老邪
Rank: 2
等 级:论坛游民
帖 子:5
专家分:14
注 册:2010-3-16
收藏
得分:0 
回复 4楼 lwbok
好像有个随机数发生器的函数吧!
2010-07-06 01:44
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int create(int *data1,int *data2)
{
    time_t t;
    srand((unsigned)time(&t));
    *data1=rand()%100;
    *data2=rand()%100;
    return rand()%5;
}
int game(int data1,int data2,int op)
{
    int answer,result,flag;
    float result_d;
    printf("请回答我的问题:\n");
    switch(op)
    {
    case 0:printf("%d+%d=?",data1,data2);answer=data1+data2;break;
    case 1:printf("%d-%d=?",data1,data2);answer=data1-data2;break;
    case 2:printf("%d*%d=?",data1,data2);answer=data1*data2;break;
    case 3:printf("%d%%%d=?",data1,data2);answer=data1%data2;break;
    case 4:printf("%d/%d=?",data1,data2);break;
    default:printf("错误!!!\n");break;
    }
    flag=0;
    if(op==4)
    {
        scanf("%f",&result_d);

        if(result_d==1.0*data1/data2)
            flag=1;
    }
    else
    {
        scanf("%d",&result);
            if(result==answer)
                flag=1;
    }
    if(flag)
    {
        printf("正确!!\n");return 1;
    }
    else
    {
    printf("错误!!\n");return 0;
    }
}
void main()
{
    char op;
    int right_flag,sum_right=0,total=0;
    int data1,data2;
    do
    {
        op=create(&data1,&data2);
        if(op==3&&data2==0)
            continue;
        if(op==4&&data2==0)
            continue;
        total++;
        right_flag=game(data1,data2,op);
        if(right_flag==1)sum_right++;
    }while(total<5);
    printf("总共算对了%c道题!\n",sum_right);
}
对的,也差不多有个随机发生数,不过很晚了,我随便编了个,你看看吧
                                                                                                                                          
2010-07-06 02:32
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
看看这个,是否符合要求?
程序代码:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<windows.h>

 


int main(int argc, char* argv[])
{
    srand((unsigned)time(NULL));

    int num1,num2,sign;
    int n;
    float m;

    cout<<"您这次要出几道题?";
    cin>>n;
    FILE* fp1;
    FILE* fp2;

    fp1=fopen("f:\\试题.txt","w");
    fp2=fopen("f:\\试题答案.txt","w");

    for(int i=0;i<n;i++){
   
        num1=rand()%100;
        num2=rand()%100;
        sign=rand()%4;
        switch(sign){
        case 0:
            fprintf(fp1,"%2d+%2d=\n",num1,num2);
            fprintf(fp2,"%2d+%2d=%d\n",num1,num2,num1+num2);
            break;
           
        case 1:
            if(num1<num2){
                m=num1;
                num1=num2;
                num2=m;

            }

            fprintf(fp1,"%2d-%2d=\n",num1,num2);
            fprintf(fp2,"%2d-%2d=%d\n",num1,num2,num1-num2);
            break;

        case 2:
            fprintf(fp1,"%2d*%2d=\n",num1,num2);
            fprintf(fp2,"%2d*%2d=%d\n",num1,num2,num1*num2);
            break;
        case 3:
            fprintf(fp1,"%2d/%2d=\n",num1,num2);
            fprintf(fp2,"%2d/%2d=%.2f\n",num1,num2,(float)num1/num2);
            break;

        }


    }


    fclose(fp1);
    fclose(fp2);

    return 0;
}


南国利剑
2010-07-06 03:36
lwbok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-5
收藏
得分:0 
回复 6楼 陛下
这么晚了,谢谢你啊,
可以运行了,可是不能选择题目的数目。

2010-07-06 10:37
lwbok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-5
收藏
得分:0 
回复 7楼 南国利剑
谢谢哦,但是编译出现了一个小错误
2010-07-06 10:41
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:0 
回复 9楼 lwbok
我编的是在5题而已,你试着自己改改不吧
想想看,自己动动脑筋才会进步啊!
2010-07-06 11:02
快速回复:小弟刚学c,碰到一个感觉很难的题,哪位大哥可以帮忙解答下,谢谢!!
数据加载中...
 
   



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

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