| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:求大神帮忙注释一下,就是在程序后见面加上解释!很简单的
只看楼主 加入收藏
小白菜鸟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
求大神帮忙注释一下,就是在程序后见面加上解释!很简单的

int main()
{
char a[80],*p,op;
int n=0,i;
int data1,data2;
float output;
scanf("%s",a);
p=&a[0];
while(*p !='\0' && *p <='9' && *p>='0')
{p++;n++;}
data1=0;
for(i=0;i<n;i++)
{p--;
data1+=(*p-'0')*pow(10,i);}
p=p+n;
op=*(p++);
n=0;
while(*p !='\0' && *p <='9' && *p>='0'){p++;n++;}
data2=0;
for (i=0;i<n;i++)
{p--;data2+=(*p-'0')*pow(10,i);}
switch(op)
{
case '+':output=data1+data2;break;
case '-':output=data1-data2;break;
case '*':output=data1*data2;break;
case '/':output=(float)data1/data2;break;
default:printf("wrong operator\n");
return 0;}
printf("%5.2f",output);
}

一个很简单的计算器程序帮忙加上解释
2013-03-23 17:13
yanwin_ray
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2013-3-23
收藏
得分:4 
好吧,我还没到能看懂这个程序的地步,帮顶
2013-03-23 17:25
小白菜鸟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-23
收藏
得分:0 
回复 2楼 yanwin_ray
。。。。。愁死了,学了没有5天一本书讲完了,讲了一大堆东西什么也不懂,发个作业让交愁死
2013-03-23 17:38
c人er
Rank: 2
来 自:武汉理工大学
等 级:论坛游民
帖 子:45
专家分:56
注 册:2013-3-22
收藏
得分:4 
关于指针的问题我还没学,其他的到时是可以看懂。
帮顶!

超英赶美若等闲…
2013-03-23 18:30
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:4 
四则运算程序
哦,还不是四则运算。只能算两个数

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-23 18:39
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
告诉你一个简单的方法
自己去调试
比求人写注释强多了

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-23 18:39
梅可伟梅可伟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:180
注 册:2013-3-11
收藏
得分:4 
int main()
 {
 char a[80],*p,op;
 int n=0,i;
 int data1,data2;
 float output;
 scanf("%s",a);
 p=&a[0];
 while(*p !='\0' && *p <='9' && *p>='0')
 {p++;n++;}
 data1=0;
 for(i=0;i<n;i++)
 {p--;
 data1+=(*p-'0')*pow(10,i);}//到这里是把字符串a转换为整型,并把其放在data1中,下面感觉有点问题
 p=p+n;
 op=*(p++);
 n=0;
 while(*p !='\0' && *p <='9' && *p>='0'){p++;n++;}
 data2=0;
 for (i=0;i<n;i++)
 {p--;data2+=(*p-'0')*pow(10,i);}
 switch(op)
 {
 case '+':output=data1+data2;break;
 case '-':output=data1-data2;break;
 case '*':output=data1*data2;break;
 case '/':output=(float)data1/data2;break;
 default:printf("wrong operator\n");
 return 0;}
 printf("%5.2f",output);
 }
 
2013-03-23 18:48
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:4 
int main()
 {
 char a[80],*p,op;//a[80]接收输入的表达式,p一会会指向数组a,op存放运算符的
 int n=0,i;
 int data1,data2;
 float output;
 scanf("%s",a);//输入的应该是一个表达式,存到a[80]中
 p=&a[0];
 while(*p !='\0' && *p <='9' && *p>='0')//查找运算符前面的字符(可转换成数字的字符)
 {p++;n++;}//如果满足条件,指针p后移一位,n指的是运算符前面“数字”的长度
 data1=0;
 for(i=0;i<n;i++)
 {p--;
 data1+=(*p-'0')*pow(10,i);}//*p-'0'是把*p指向的字符转换成数字,pow(10,i)是10的i次方
 p=p+n;//经过上面的循环p又指向a的首地址了,p+n使p执行运算符
 op=*(p++);//op保存运算符
 n=0;
 while(*p !='\0' && *p <='9' && *p>='0'){p++;n++;}//这里和上面一样,得到表达式的第二个数
 data2=0;
 for (i=0;i<n;i++)
 {p--;data2+=(*p-'0')*pow(10,i);}
 switch(op)//根据运算符选择执行的操作
 {
 case '+':output=data1+data2;break;
 case '-':output=data1-data2;break;
 case '*':output=data1*data2;break;
 case '/':output=(float)data1/data2;break;
 default:printf("wrong operator\n");//当上面的case都执行不到时执行default语句
 return 0;}
 printf("%5.2f",output);//输出最后的计算结果%5.2f指输出结果占五个字符的宽度,小数两位
 }
 //大体意思就是找出运算符前面的数放到data1中,找出运算符放到op中,找出第二个数放到data2中
2013-03-23 23:54
小白菜鸟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-23
收藏
得分:0 
回复 8楼 shmilyflf
谢啊
2013-03-24 00:04
快速回复:求大神帮忙注释一下,就是在程序后见面加上解释!很简单的
数据加载中...
 
   



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

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