| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:哪位大神给点c语言好玩的东西啊?本人是小白
只看楼主 加入收藏
xiaobailaile
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-6-24
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:9 
哪位大神给点c语言好玩的东西啊?本人是小白
激发下兴趣啊
搜索更多相关主题的帖子: c语言 
2013-06-25 22:38
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
买个ARM板玩玩linux?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-26 07:05
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:4 

你想玩什么?
2013-06-26 11:12
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:4 
......同是小白。我路过。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-06-26 11:50
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:4 
函数绘图程序,输入表达式,程序画出图形。
例如画出y=x^3-4x^2-x+3的图形。
输入:
图片附件: 游客没有浏览图片的权限,请 登录注册

绘出图形如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

代码:
程序代码:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
#include <bios.h>
#define ESC 0x11b
#define TRUE 1
#define FALSE 0
#define VAR 2
double cal(double *,char *,int *,double);
double numtok(char *,int *);
int ishave(char,char *);
int isnum(char);
int deal(char *,double *,char *,int *);
double count(double *,char *,int,double);
void init_graph(void);
void paintxy(void);
void init(double *,char *,char *,int *);
int main()
{
    double data[200],m,n;
    char str[200],sign[200];
    int poti[50],x,y,key=1;
    while(TRUE)
    {
        printf("Press ESC exit,Other Key Continue\n");
        key=bioskey(0);
        if(key==ESC)
            break;
        init(data,str,sign,poti);
        printf("Input Equation :\n");
        printf("y = ");
        scanf("%s",str+1);
        str[0]='+';
        deal(str,data,sign,poti);
        init_graph();
        paintxy();
        for(m=-20.0;m<=20.0;m+=0.001)
        {
            n=cal(data,sign,poti,m);
            if(n>15||n<-15)
                continue;
            y=-(int)(n*20)+240;
            x=(int)(m*20)+320;
            if(x>=0&&x<=639&&y>=0&&y<=479)
                putpixel(x,y,RED);
        }
        getch();
        cleardevice();
    }
    closegraph();
    return 0;
}
void init(double *data,char *str,char *sign,int *poti)
{
    int x;
    for(x=0;x<199;x++)
    {
        if(x<=49)
            poti[x]=-1;
        str[x]='\0';
        data[x]=0.0;
        sign[x]='\0';
    }
}
double count(double *data,char *sn,int pos,double ans)
{
    double d1,d2;
    d1=ans;
    d2=data[pos];
    if(sn[pos]=='*')
    {
        if(sn[pos+1]=='*'||sn[pos+1]=='/')
            return count(data,sn,pos+1,d1*d2);
        else
            return d1*d2;
    }
    else if(sn[pos]=='/')
    {
        if(sn[pos+1]=='*'||sn[pos+1]=='/')
            return count(data,sn,pos+1,d1/d2);
        else
            return d1/d2;
    }
    else
    {
        printf("Error !\n");
        getch();
        return 0.0;
    }
}
double cal(double *data,char *sign,int *pt,double x)
{
    double ans=0.0,t;
    int i=0,k=0;
    while(pt[k]!=-1)
    {
        data[pt[k]-1]=x;
        k++;
    }
    while(sign[i]!='\0')
    {
        if(ishave(sign[i],"*/"))
        {
            i++;
            continue;
        }
        if(!ishave(sign[i+1],"*/"))
            t=data[i];
        else if(ishave(sign[i+1],"*/"))
            t=count(data,sign,i+1,data[i]);
        if(sign[i]=='+')
            ans+=t;
        else if(sign[i]=='-')
            ans-=t;
        i++;
    }
    return ans;
}
int deal(char *expr,double *data,char *sign,int *pt)
{
    char *p;
    int k=0,l=0,i=0,v=0;
    p=expr;
    while(*p)
    {
        while(isnum(*p))
            p++;
        if(ishave(*p,"+-*/"))
            sign[l++]=*p;
        data[k++]=numtok(p,&v);
        if(v==TRUE)
        {
            pt[i++]=k;
            v=FALSE;
        }
        while(isnum(*p));
            p++;
    }
    return k;
}
double numtok(char *sour,int *isvar)
{
    char str_num[17]="";
    int k=0,l=0;
    sour++;
    if(isnum(*sour)==VAR)
    {
        *isvar=TRUE;
        return 0.0;
    }
    while((isnum(*sour)==TRUE)&&l<=15)
    {
        str_num[k++]=*sour;
        sour++;
        l++;
    }
    return atof(str_num);
}
int ishave(char c,char *s)
{
    int flag=0;
    while(*s)
    {
        if(*s==c)
        {
            flag=1;
            break;
        }
        s++;
    }
    return flag;
}
int isnum(char ch)
{
    if((ch>='0'&&ch<='9')||ch=='.'||ch=='e')
        return TRUE;
    else if(ch=='x')
        return VAR;
    else
        return FALSE;
}
void paintxy(void)
{
    int m,n;
    setcolor(BLUE);
    line(0,240,639,240);
    line(320,0,320,479);
    setcolor(WHITE);
    outtextxy(325,245,"O");
    outtextxy(630,245,"X");
    outtextxy(325,5,"Y");
    for(m=0;m<=3;m++)
    {
        for(n=0;n<=3-m;n++)
        {
            putpixel(636+m,240-n,BLUE);
            putpixel(636+m,240+n,BLUE);
            putpixel(320+n,3-m,BLUE);
            putpixel(320-n,3-m,BLUE);
        }
    }
}
void init_graph(void)
{
    int gdriver=DETECT,gmode=2;
    registerbgidriver(EGAVGA_driver);
    initgraph(&gdriver,&gmode,"C:\\TC20H");
}
只能计算+ - * / ,也不支持省略*
2013-06-26 12:50
xiaobailaile
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-6-24
收藏
得分:0 
回复 2楼 pauljames
没听说过。。。
2013-06-26 22:56
xiaobailaile
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-6-24
收藏
得分:0 
回复 3楼 Alar30
不知道
我现在就是挺想学c的 但是一真正上手就不知道干啥了、、、
2013-06-26 22:57
xiaobailaile
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-6-24
收藏
得分:0 
回复 5楼 Agdmeg
可以炫一把。。。嘻嘻
不过好复杂啊。。。
自己现在就懂一点。。。
2013-06-26 22:59
jiangjiege
Rank: 1
来 自:河南
等 级:新手上路
帖 子:1
专家分:4
注 册:2013-6-27
收藏
得分:4 
回复 5楼 Agdmeg
厉害啊!不过小白我看不懂!唉
2013-06-27 17:17
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:4 
水仙花数? 马的遍历? 等等?

这个怎么玩
2013-06-27 17:23
快速回复:哪位大神给点c语言好玩的东西啊?本人是小白
数据加载中...
 
   



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

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