C程序设计,帮忙解决下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C程序设计,帮忙解决下相关的知识,希望对你有一定的参考价值。

参考技术A 编写一个函数,求从n个不同的数中取r个数的所有选择的个数。其个数值为:
其中:
n!
=
n
*
(n-1)
*
(n-2)
*
...
*
1。
1、基本要求:
主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0
0时,程序结束;
能检查输入数据的合法性,要求n>=1并且n>=r;
2、分别用递归和非递归两种方式完成程序设计;
3、多文件结构实现
将上面用非递归方式写成的程序改成用多文件结构表示。要求将main()函数放在一个文件中,将另外两个函数定义放在另一个C++源文件中,将两个函数原型申明放在一个C++头文件中。建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。
[测试数据]:
输入:5
3
输入:10
20
输入:-1
4
输入:50
3
输入:0
0
[实验提示]
1、利用一个非递归函数fn(int
n)计算n!,利用另一个函数Cnr(int
n,
int
r)计算Cnr,在该函数中调用fn(),
问题:你打算用什么样的变量类型来存放n!函数返回的值?注意各种数据类型的内存字长不同,整数能存放的数据范围有限,你如何解决?
可以用double数据类型来存放函数的计算结果
2、利用一个递归函数实现,利用公式实现递归:
C(n,r)
=
C(n,
r-1)
*
(n

r
+
1)
/
r
注意递归结束条件:
如果
r
=
0
,则C(n,
r)
=
1
如果
r
=
1,
则C(n,
r)
=
n
3、文件实现步骤:
新建一个项目,命名为“multifile”
用File|New创建一个新的”C++
Source
File”,命名为main.cpp
用File|New创建一个新的”C++
Source
File”,命名为func.cpp
用File|New创建一个新的”C/C++
Header
File”,命名为func.h
用File|Open打开你前面实验中用非递归方式求C(n,r)的C++源程序文件,将其中的主函数部分拷贝到main.cpp中,将其中的两个函数实现放到func.cpp中,再将两个函数的原型写到func.h中
在main.cpp
中包含进头文件:#include
“func.h”
编译连接该项目,运行它。你得到的结果应该和上一个实验一样。耽误大人半个小时,求解啊

stc单片机串口调试的小程序,但是在串口调试助手里,显示接收不到数据,希望大虾们帮忙解决下,下面是程序

ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV P1,#0FFH
MOV P2,#0FFH
MOV TMOD,#20H ;设置波特率为9600,串口发送方式为1
MOV TH1,#0FBH
MOV TL1,#0FBH
MOV PCON,#00H
MOV SCON,#58H
SETB TR1
SETB EA ;开中断
SETB ES
SEND: MOV A,#0FFH
MOV SBUF,A
JBC TI,SEND
END

你先看看串口线有没问题:

将串口的2、3脚两根针短接,用键盘在串口调试输入字符,如果串口调试接收区能够显示输入的字符,说明串口工作正常
等我再看看程序

我觉得这儿有问题 JBC TI,SEND
JBC在T1为0的时候,会顺序执行,然后就end了 ,这里我觉得应该改为等待发送结束的指令

JNB T1, $追问

我试试···

追答

完事记得采纳我

追问

还是不对,并且我把单片机上的p3.0和p3.1短接后,发现串口调试助手的发送的数据和收到的数据部一样,而且我发送的是一个数据,为何串口调试助手一直在接收单片发来的数据(数据很多)!并且,当我把板子上的电源关掉后,串口线不短接,串口调试助手发送数据,仍然可以收到数据,电源打开就不行了!求解!

参考技术A 大哥,啥年代啦,还用汇编。我汇编看不太懂,你调用send了吗。你如果要C语言的,我能给你写个 参考技术B 用十六进制发送追问

这发的就是十六进制呀?

以上是关于C程序设计,帮忙解决下的主要内容,如果未能解决你的问题,请参考以下文章

linux下,编写一个c语言程序实现...(详细见正文)!急!

c语言问题 帮帮忙吧,用c语言编程,解决以下问题: 3对情侣参加婚礼,3个新郎分别为A,B,C,

C语言程序问题,数组元素无法赋值?请大家帮忙看看

如何用C语言实现在linux下开发软件 请大虾帮忙解决

有没有c++大佬来帮忙把这个程序的struct改为class类啊,这个程序大多是c的,老师要用c+

c语言程序设计帮忙修改一下谢谢