标题:新人不懂!这个程序所表示的表达式不能算出正确的值!哪里错了?
只看楼主
liu229118351
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:101
注 册:2013-10-23
结帖率:100%
已结贴  问题点数:20 回复次数:16 
新人不懂!这个程序所表示的表达式不能算出正确的值!哪里错了?
求表达式s=aa...aa-...-aaa-aa-a(a...a表示无数个a),a,n的值在1-9之间,例如a=3,n=6,s=333333-33333-3333-333-33-3
程序如下:
#include<stdio.h>
void main()
{
    int j,s,t;
    int a,n;
    printf("please input:");
    scanf("%d%d",&a,&n);
    for(j=0;j<n;n++)
    {
        t=t*10+a;
        s=t;
        for(j=1;j<n;j++)
        {
            t=t%10;
            s=s-t;
        }
    }
    printf("\nthe result is:%d\n",s);
}
搜索更多相关主题的帖子: please 表达式 
2013-10-31 20:42
liu229118351
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:101
注 册:2013-10-23
得分:0 
是不是循环结构哪里出问题了啊?

单曲循环,需要信心+耐心+恒心
2013-10-31 20:43
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
结果是什么
2013-10-31 20:45
liu229118351
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:101
注 册:2013-10-23
得分:0 
回复 3楼 tlliqi
就按照那个表达式我赋值a和n都为4的话结果只有40,但是实际上不是应该是4444-444-44-4么。。

单曲循环,需要信心+耐心+恒心
2013-10-31 20:48
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:7 
scanf("%d%d",&a,&n);
不加个空格?
scanf("%d %d",&a,&n);
可以先计算前面那一窜被减数只和,在一次性减去这个和,这样比较方便点,

void main()
{
    int a,n;
    scanf("%d %d",&a,&n);
    int num = 0;
    int sub = 0;

    for (int i = 0;i < n; i++) {
        sub += num;
        num = num * 10 + a;
    }

   num -= sub;

    printf("\nthe result is:%d\n",num);
}

没有做容错,自己修理一下咯


我行我乐
我的博客:
http://blog.yuccn. net
2013-10-31 20:54
liu229118351
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:101
注 册:2013-10-23
得分:0 
回复 5楼 yuccn
谢谢了!!有用!

单曲循环,需要信心+耐心+恒心
2013-10-31 21:01
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:210
专家分:522
注 册:2011-10-26
得分:2 
#include<stdio.h>
void main()
{
    int j,s,t;
    int a,n;
    printf("please input:");
    scanf("%d%d",&a,&n);
    t=a;
    for(j=1;j<=n;j++)
    {
        s=a;
        a=a*10+t;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    }

    for(j=1;j<n;j++)
    {
        s-=t;
        t=t*10+t;
    }

    printf("\n the result is:%d\n",s);
}
2013-10-31 21:14
重邮肖冬冬
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2013-10-25
得分:2 
#include<stdio.h>
void main()
{
    int j,s,t=0;
    int a,n;
    printf("please input:");
    scanf("%d,%d",&a,&n);
for(;n>0;n--)
{
    t=0;
    for(j=0;j<n;j++)
    {
        t=t*10+a;
        s=t;
      
    }
    printf("%d-",s);
}
}
2013-10-31 22:27
zhangqidaxia
Rank: 2
等 级:论坛游民
帖 子:17
专家分:22
注 册:2013-10-16
得分:0 
t没有赋值
2013-11-01 07:52
zerolu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2013-10-31
得分:0 
回复 7楼 xp0213
我觉得你的循环有问题,差一次的吧?
2013-11-01 10:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-422863-1-1.html




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

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