打印

[提问] C语言问题

C语言问题

小弟我刚刚学C语言
也不会写什么工具
刚刚写了个 关于 N的阶乘的程序  但是 怎么也输出不出来  检查了好一会 也没发现什么错误  哪位大哥帮忙看看 谢谢了 :D
复制内容到剪贴板
代码:
#include<stdio.h>
#include<conio.h>
void main()
{int n,i,sum=1;
printf("this program is about N!\n");
printf("\n");
printf("please input a number:");
scanf("%d",&n);
for(i=n;i>=1;i--)
sum=sum*i;
printf("%d! is %d\n",n,sum);
printf("Have a good time ! \n");
clrscr();
getch();
}
为了方便大家阅读代码,请将代码用【code】和【/code】括起,谢谢合作^_^
                                                                                             --flyli

[ 本帖最后由 flyli 于 2007-2-10 18:43 编辑 ]
My blog : http://hi.baidu.com/easydownload

TOP

晕啊  还没人回答  看来学习编程的人好象很少 啊
My blog : http://hi.baidu.com/easydownload
3Q   知道了  是  clrscr 函数的 位置问题
My blog : http://hi.baidu.com/easydownload

TOP

呵呵,刚看到这个帖子
这个clrscr();的位置确实有问题
还有那个楼上的应该是SYSTEM(“CLR“)哈~
学了6年了,还是初学者。。。。。。。。
system("CLR")是什么啊?
我只知道VB中Form1.clr可以清除屏幕,莫非……

TOP

clrscr()一般是用在主函数函数体定义完变量以后,此处把clrscr()放在printf()以后,输出的内容自然全部没了
另外,主函数体的sum=sum*i放到一个递归函数中程序的格式会比较清晰(漂亮的格式可以大大增强文件的可读性)
这个程序用int类型是不是太短拉 ,它的范围只有-32768~32768,输到8就出不来了。

我想问一下怎么才能让更大点的数字也算的出来哦?

TOP

不过还是有问题,问题出在循环上;
for(i=n;i>=1;i--)
当i=1是仍要继续执行循环,i--既i=0;
那sum不就永远都为0了
不会循环的,因为i=0的时候不满足i>=1这个条件,就退出循环拉
这个地方是对的。。

TOP

#include<conio.h>
这句就不用了...

Processed in 0.044527 second(s), 5 queries, Gzip enabled