关于c++程序运行的问题(程序运行时只有代码中第一个被执行的函数能正常运行)

关于c++程序运行的问题(程序运行时只有代码中第一个被执行的函数能正常运行),第1张

函数并不是没有执行,而是执行了你没有看到它的输出。cinget()会提取回车。所以当你调用第一个函数时会要求输入,假设你输入为a 5然后回车,输出了你想要的图形,然后调用第二个函数,假设输入b 9回车。问题来了cin重载的>>运算符并不会提取回车,但是cinget()会提取回车。所以你上一次输入的回车被cinget()提取,然后cin>>n提取到的就是b,但是n是int,所以出错,就变成你的默认值0。所以没有满足循环条件,没有图形输出,你感觉没有执行。

你可以在第二次输入时只输入一个数字然后回车,就会发现中间多了几个空行,就是fillchar是回车造成的。如果想更加直观,你可以把后一个调用的函数的fillchar定义成int型。就会发现输出的是10。

呵呵!楼主的程序的写法让人看了蛋疼,先帮你美化美化!

#include <stdioh>

long f1(int p)

{

int k;

long r;

long f2(int);

k=pp;

r=f2(k);

return r;

}

long f2(int q)

{

long c=1;

int i;

for(i=1;i<=q;i++)

c=ci;

return c;

}

main()

{

int i;

long s=0;

for (i=2;i<=3;i++)

s=s+f1(i);

printf("\ns=%ld\n",s);

}

看一个代码肯定是从main函数看起的。首先main调用了f1,然后f1又调用了f2;

观察f2发现,其实f2(q)就是用来求q的阶乘q!的!所以可进一步观察出f1(p)是用来求(pp)的阶乘的!

返回到main函数,所以s=4!+9!;

呐,这就是调用函数的过程。

以上就是关于关于c++程序运行的问题(程序运行时只有代码中第一个被执行的函数能正常运行)全部的内容,包括:关于c++程序运行的问题(程序运行时只有代码中第一个被执行的函数能正常运行)、函数的调用(程序是怎么运行的)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9710233.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存