| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3570 人关注过本帖
标题:输出结果不对
取消只看楼主 加入收藏
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
结帖率:96.88%
收藏
已结贴  问题点数:20 回复次数:5 
输出结果不对

#include<stdio.h>
main()
{
    int a,n,i,j;
    int sum=0;
   
    printf("请输入a 和 n 的值:");
    scanf("%d %d",&a,&n);
    printf("a=%d n=%d",a,n);

    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            sum=sum+a;
            a=a*10;
        }
    }
    printf("%d",sum);
     
    return 0;
}

这个程序原来的目的是要实现 给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
实际运行结果是 当我输入5 5
输出 a=5 n=一个很大的数与原输入不符 而且运行结束 没有printf("%d",sum) 这一项

在我去掉下一半的代码 保留
#include<stdio.h>
main()
{
    int a,n,i,j;
    int sum=0;
   
    printf("请输入a 和 n 的值:");
    scanf("%d %d",&a,&n);
    printf("a=%d n=%d",a,n);
}
那么输出正常


[此贴子已经被作者于2016-10-15 17:40编辑过]

搜索更多相关主题的帖子: 编写程序 include return 正整数 
2016-10-15 14:12
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 3楼 linlulu001
谢谢,以后遇到这样的问题我会注意的

早知做人那么辛苦!  当初不应该下凡
2016-10-15 17:50
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 4楼 ehszt
按照你的方法 的确可以.
那个printf 加\n 我理解了

但是你给我改的第二个地方我还不太懂,
m=a 为什么在下面的for循环中不能直接使用a ,而是要通过m的传递

早知做人那么辛苦!  当初不应该下凡
2016-10-15 17:53
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
for(i=1;i<=n;i++)
      {
          for(j=1,a=m;j<=i;j++)
          {
              sum=sum+a;  
              a=a*10; //在执行完这句代码后, 是从for语句中的j<=i 开始执行么?
          }
      }
上面的代码与下面代码所能达到的目的一样吗?
 for(i=1;i<=n;i++)
      {
          a=m;
          for(j=1;j<=i;j++)
          {
              sum=sum+a;
              a=a*10;
          }

      }

早知做人那么辛苦!  当初不应该下凡
2016-10-15 18:41
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 9楼 xzlxzlxzl
for(i=0,sum=0,j=a;i<n;i++,j=j*10+a)sum+=j;
我对这个循环没怎么看懂  设 a=3  n=2
循环开始
1.i=0 sum=0 j=3;...j=3*10+3    sum+=j sum=0+33=33
2.i=1 sum=33 j=3;i<n;... j=3*10+3     sum+=j  sum=33+33=66
不知道我哪里错了

早知做人那么辛苦!  当初不应该下凡
2016-10-15 19:31
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 12楼 linlulu001
谢谢

早知做人那么辛苦!  当初不应该下凡
2016-10-15 20:07
快速回复:输出结果不对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034836 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved