printf-为什么我输入以下程序却不能显示呢

问题描述

为什么我输入以下程序却不能显示呢

#include
int main()
{
int i,n,s;
s=0;
for(i=1;i<=20;i++)
{
n=1;
while (i!=0)
{
n=i*n;
i--;
}
s=s+n;
}
printf("总和为%dn",s);
return 0;
} //求一到二十各个数的阶乘的总和

解决方案

首先,你这个是一个死循环.

 #include <stdio.h>
int main()
{
    int i, n, s;
    s = 0;
    for (i = 1; i <= 20; i++)
    {
        n = 1;
        while (i != 0)
        {
            n = i*n;
            i--;//这是一个死循环.在这个大循环里,每次走到这个小循环里之后,都会将变量i减成0.然后再在大循环里置成1.
        }
        s = s + n;
    }
    printf("总和为%dn", s);
    return 0;
} //求一到二十各个数的阶乘的总和

可以这么改

 #include <stdio.h>
int main()
{
    int i, n, s;
    s = 0;
    for (i = 1; i <= 20; i++)
    {
        n = 1;
        int t = i;
        while (t != 0)
        {
            n = t*n;
            t--;
        }
        s = s + n;
    }
    printf("总和为%dn", s);
    return 0;
} //求一到二十各个数的阶乘的总和

简化一下代码,可以这么写

 #include <stdio.h>
main()
{
    int i;
    long p = 1;
    long s = 0;
    for (i = 1; i <= 20; i++)
    {
        p = p*i;
        s = s + p;
    }
    printf("总和为%dn", s);
}

解决方案二:

你是在什么环境下运行的,是不是输入窗口显示了一下,所以你认为不能显示。
如果是,考虑使用 GetCh 之类的函数来等等用户按键再退出 。

解决方案三:

循环有问题。。。 你在while循环中 把 i 变量做了减减。 但是出了while循环后 在for 循环中又做了 i 加加。。。 这样的话 你的i 其实一直是1. 一直在做for循环。。。。

解决方案四:

很简单的c语言程序啊,我把算法写出来了
int main()
{
int i,sum=1,sumTotle=0;
for (i=1; i<=20; i++) {
sum=1;
for (int j=1; j<=i; j++) {
sum *=j;
}
sumTotle += sum;
}
}

时间: 2024-08-25 08:08:57

printf-为什么我输入以下程序却不能显示呢的相关文章

指针-求助 输入时程序崩溃 改了N小时还是问题不断

问题描述 求助 输入时程序崩溃 改了N小时还是问题不断 学生信息管理 学生信息管理应用程序要求能够对学生的信息: StudentID, Name, Sex, Age, Time of Enrollment(入学时间), Gpa(加权平均), PhoneNo, MailingAddress, 等进行管理. 功能要求: (1)Create a student list; (2)Sort according to the StudentID: (3)Insert a student://(to the

winXP系统下添加/删除程序面板中显示空白问题的解决方法

  1.首先,咱们单击打开winXP电脑的开始菜单,然后从开始菜单中选择进入到运行窗口中,在打开的运行窗口中,咱们输入cmd并单击回车,这样就可以打开winXP系统的命令提示符窗口了. 2.在打开的命令提示符窗口中,咱们分别输入如下几组命令: regsvr32 Appwiz.cpl /s 回车; regsvr32 Mshtml.dll /s 回车; regsvr32 Jscript.dll /s 回车; regsvr32 Msi.dll /s 回车; regsvr32 Mshtmled.dll

XP系统中添加/删除程序面板中显示空白怎么回事?

  xp系统现在还是有一些用户在使用,最近就有客户说自己想要删除一些不想要常用的软件,打开自己控制面板里面的删除或者添加程序进行操作,结果发现里面是空白的,点击上方的程序也没有反应,不知道是怎么回事,点击下方的添加删除组件设置又是可以点击的,如何解决这个空白的问题呢,小编马上就给大家讲述一下具体的方法. 具体方法: 1.第一步大家点击打开开始菜单,在菜单中找到运行选项,点击打开运行选项后就会弹出输入框,在运行输入框中输入命令cmd并单击回车,直接就可以打开系统中的命令提示符窗口. 2.在命令提示

关于C#WinForm窗体程序如何连接显示在LED大屏幕

问题描述 各位大侠.专业的高手..恳求一定要帮帮老弟这个大忙丫!我用C#写了一个简单的WinForm程序,刚开始是使用在投影仪上的,完全符合要求,现在却要求放在LED大屏幕上显示,老弟我真的是不懂怎么去实现这个功能呀.毕业了就没接触过技术学习了.所以在这里跪谢各位大侠帮帮老弟如何去解决这个难题丫.要不,真的会被炒鱿鱼了..哪位大虾有相关于WinForm链接LED显示的程序或者范例让我参考参考或者提醒一些有效的方法.老弟实在是不会呀..我很是想保住这个饭碗丫...现在就在线等各位大侠踊跃帮忙,在线

用java写的桌面应用程序,文字显示不正常!!求助

问题描述 用java写的桌面应用程序,文字显示不正常代码上传到了网盘:http://pan.baidu.com/s/1hqkVmuw 解决方案 解决方案二:sun公司早就放弃了桌面编程的市场了,你还学?学了也没人用的,放弃吧,学点Javaweb才是java的强项解决方案三:Swing作为兴趣来耍耍还行,你如果以后要找这方面工作的,建议脱坑解决方案四:java中的GUI编程已经过时了,不过在其版本的教材中还是有专门章节的,学的时候简单的了解一下就下,有更好的界面设计语言,可以做出非常漂亮的界面,而

在EXCEL表格里输入身份证号如何能够显示并打印呢?

数字超过11位就会变成科学计数法,例如123456789789变成1.23457E+11,而超过15位的话,15位后面的数字全部变成0,解决方法有2种 第一种:先输入英文输入状态下的单引号 ' 然后再输入数字即可正常显示. 第二种:或者先选中该列或该单元格,鼠标右击,"设置单元格格式","数字","文本",确定即可.然后输入数字就能正常显示了.

delphi程序全屏显示无标题栏覆盖整个屏幕

delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈   delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 复制代码 代码如下: procedure TMainFrm.FormCreate(Sender: TObject); begin with MainFrm do begin { Position form } Top := 0 ; Left := 0 ; { Go full s

Excel2010单元格输入0开头数字不显示怎么办

  Excel2010单元格输入0开头数字不显示怎么办           方法一.加单引号法 这是一种最为简便的方法,你只需在0的前面加上一个单引号'就可以了,这种方法适用于偶尔输入0开头的数字,如果是大批量或整行或整列,甚至是某个区域都需要输入0开头的数字,那么就可以下面的方法二了. 方法二.设置单元格格式法 这种方法是通过改变默认的单元格的数值格式,我们把单元格设置为文本类型就可以了,选中需要输入0开头的数字单元格,然后右击鼠标,在快捷菜单中选择"设置单元格格式",然后在&quo

Windows 8 metro程序分屏显示技巧

  Windows 8 metro程序分屏显示技巧 据悉,Win8新增的分屏显示功能,能让某个Metro应用固定在屏幕左/右侧,相当于同时显示两个全屏程序(包括桌面).那么win8的程序分屏显示功能作为一个新生的事物,很多用户都不熟悉,该如何运用呢? 微软展示了 Windows 8 之一是功能的管理单元.微软,只有高分辨率的 Pc 上提供此功能. Windows 8 metro 程序分屏显示技巧 与一些注册表修改,您可以强制启用快照不受支持的机器上. 在开始屏幕上键入 regedit 并查找以下