51Testing软件测试论坛

标题: 帮我看一下这个c程序有什么问题? [打印本页]

作者: yhzmw    时间: 2006-7-3 20:39
标题: 帮我看一下这个c程序有什么问题?
一个简单的c程序。求2+22+222+2222+....其中n为最后的位数。(n<=5)
main()
{int i,n,m=0,t=2;
scanf("please input n%d\n",&n);
for (i=1;i<=n;i++)
{m+=t;
t=10*t+2;}
printf("the total is %d\n",m);
}
运行后c不报错。就是结果不对。请高手帮忙看一下
作者: 舞の月    时间: 2006-7-3 23:34
scanf()函数问题,请注意他是输入函数你里面写的“please input n”是不会显示的
main()
{
    int i,n,m=0,t=2;
    printf("please input n:  ");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
        {
            m+=t;
            t=10*t+2;
        }
    printf("the total is %d\n",m);
}
试试~~
作者: skyzhu    时间: 2006-7-4 00:49
楼上的是对的

[ 本帖最后由 skyzhu 于 2006-7-4 17:14 编辑 ]
作者: yang119345    时间: 2006-7-4 01:16
汗介个!!!!!!!确实是scanf()的问题
作者: 舞の月    时间: 2006-7-4 08:27
我觉得是scanf()里哪个“n%d”那的问题大概是强制取余了
作者: yhzmw    时间: 2006-7-4 09:10
感谢各位。感谢  舞の月,写的时候太大意了。把scanf和printf合并了。呵呵。
作者: intel    时间: 2006-7-4 11:02
恩,写程序有时候最大的问题就是大意。在VC里全选然后ALT+F8可以调整格式。忘了函数的用法,光标定位到函数那里,按 F1(MSDN光盘一定要装)。不必为不知道了个函数的用法而担心,因为具体编码的时候有成千上万个函数或着对象,查看帮助就可以了。还有就是规范,推荐看一本《高质量C++编程》林锐著。

[ 本帖最后由 intel 于 2006-7-4 11:21 编辑 ]
作者: zht110117    时间: 2006-8-10 15:17
标题: 简单
只要把 scanf 换成cin>>就可以了
作者: yang119345    时间: 2006-8-10 17:41
原帖由 zht110117 于 2006-8-9 20:17 发表
只要把 scanf 换成cin>>就可以了



cin是C++的吧?

还要
#include <iostream>
using namespace std;
作者: 我是海    时间: 2006-8-23 22:50
# include <stdio.h>
main()
{int i,n,m=0,t=2;
scanf("%d",&n);
printf("n=%d",n);
for (i=1;i<=n;i++)
{m=t;
printf("the total is %d\n",m);
t=10*t+2;}
}
这样就可以了
作者: 我是海    时间: 2006-8-23 22:51
把m+=t改成m=t就可以了
作者: fflastjay    时间: 2006-8-30 12:26
sdlkfj5




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2