当前位置: 代码迷 >> C语言 >> [求助]改写程序:c++改成c
  详细解决方案

[求助]改写程序:c++改成c

热度:221   发布时间:2007-09-18 14:11:40.0
以下是引用neverTheSame在2007-9-18 14:06:24的发言:
我敢说那个程序员在初学编程的时侯,不是从抄程序运行开始的.

但有人愿意一直抄下去,有人只抄了hello world



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------


BS楼主
----------------解决方案--------------------------------------------------------

回复:(雨中飞燕)以下是引用夜火在2007-9-18 12:11:...

大姐,小弟知错了.
我自己编了一个,但得不到正确结果.相烦指教.
#include "stdio.h"
float Add(float a,float b)
{
float c;
c = a + b;
return c;
}
float Sub(float a,float b)
{
float c;
c = a - b;
return c;
}
float Mul(float a,float b)
{
float c;
c = a * b;
return c;
}
float Div(float a,float b)
{
float c;
c = a / b;
return c;
}
float Input()
{
printf("请输入您要计算的四则运算表达式(表达式中最多有3个运算符,数据范围为1-100的整数)\n");
char c;
char Space[20];
c = getchar();
int d; //用于记录表达式的长度
for (int i = 0;c != '\n';i++)
{
Space[i] = c;
c = getchar();
d = i+1;
}
int a;
int Num = 0; //用于表示运算符的个数
int a1,a2,a3; //用于表示3个运算符
int j = 0,k = 0;
int op,op1,op2,op3,op4,op5[8],op6; //用于保存操作数
a = (int)Space[0];
for ( i = 0;i < d;i++)
{
if (k ==1)
{
op = op*10+a-48;
}
if (k ==2)
{
op = op*10+a-48;
}
op = a - 48;
if (a < 48)
{
op5[j] = op;
j++;
k = 0;
Num++;
switch(j)
{
case 1:
a1 = a;
op1 = op5[0];
break;
case 2:
a2 = a;
op2 = op5[1];
break;
case 3:
a3 = a;
op3 = op5[2];
break;
}
}
else
{
k++;
}
a = (int)Space[i+1];
}
a = (int)Space[d-1];
op6 = a - 48;
a = (int)Space[d-2];
if (a > 48)
{
op6 = (a-48)*10+op6;
a = (int)Space[d-3];
if (a>48)
{
op6 = (a-48)*10+op6;
}
}
switch(Num)
{
case 1: //一个运算符
switch(a1)
{
case 43:
return Add((float)op1,(float)op6);
break;
case 45:
return Sub((float)op1,(float)op6);
break;
case 42:
return Mul((float)op1,(float)op6);
break;
case 47:
return Div((float)op1,(float)op6);
break;
}
break;
case 2: //二个运算符
switch(a1)
{
case 43:
switch(a2)
{
case 43:
return Add(Add((float)op1,(float)op2),(float)op6);
break;
case 45:
return Sub(Add((float)op1,(float)op2),(float)op6);
break;
case 42:
return Add((float)op1,Mul((float)op2,(float)op6));
break;
case 47:
return Add((float)op1,Div((float)op2,(float)op6));
break;
}
break;
case 45:
switch(a2)
{
case 43:
return Add(Sub((float)op1,(float)op2),(float)op6);
break;
case 45:
return Sub(Sub((float)op1,(float)op2),(float)op6);
break;
case 42:
return Sub((float)op1,Mul((float)op2,(float)op6));
break;
case 47:
return Sub((float)op1,Div((float)op2,(float)op6));
break;
}
break;
case 42:
switch(a2)
{
case 43:
return Add(Mul((float)op1,(float)op2),(float)op6);
break;
case 45:
return Sub(Mul((float)op1,(float)op2),(float)op6);
break;
case 42:
return Mul(Mul((float)op1,(float)op2),(float)op6);
break;
case 47:
return Div(Mul((float)op1,(float)op2),(float)op6);
break;
}
break;
case 47:
switch(a2)
{
case 43:
return Add(Div((float)op1,(float)op2),(float)op6);
break;
case 45:
return Sub(Div((float)op1,(float)op2),(float)op6);
break;
case 42:
return Mul(Div((float)op1,(float)op2),(float)op6);
break;
case 47:
return Div(Div((float)op1,(float)op2),(float)op6);
break;
}
break;
}
break;
case 3: //三个运算符
break;
}
return 0;
}

int main()
{
printf("%ld",(long)Input());
}


----------------解决方案--------------------------------------------------------
````把别人的代码般来自己用````绝对是抄袭```

``但是把别人的程序看明白了```了解了作者的思路````

```然后自己用自己看懂的思路在自己写一次``````这算是抄袭吗````

``有的时候``我发现别人的程序写的比我好```然后就想学学别人也改下我的程序``

```但是怎么都觉得``蛮丢分的```感觉是在抄袭别人的```所以有的时候都不会改```








----------------解决方案--------------------------------------------------------

[QUOTE]但是把别人的程序看明白了```了解了作者的思路``
```然后自己用自己看懂的思路在自己写一次``````[/QUOTE]
这样绝对不算,因为是你看懂了再写,看懂了的东西就是属于你的东西
[QUOTE]有的时候``我发现别人的程序写的比我好```然后就想学学别人也改下我的程序[/QUOTE]
最好不要改,而是重写你自己的代码

至于13楼的建议你先自己找资料,学学基础算法


by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/


----------------解决方案--------------------------------------------------------
哈哈,我还真准备看那个矩阵了,看了往下一翻,晕倒!!!
----------------解决方案--------------------------------------------------------
  相关解决方案