| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 793 人关注过本帖
标题:C语言类型的题
只看楼主 加入收藏
pt137642041
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-12-13
结帖率:0
收藏
已结贴  问题点数:5 回复次数:2 
C语言类型的题
#include <stdio.h>
#include<string.h>
int main()
{
    char a[1000],b[1000],d;
    int c[1000],x,y,z,i,j;
    i=0;
    printf("请输入一个数:\n");
    gets(a);  
    printf("请输入运算符:\n");
    getchar();
    d=getchar();
    printf("请再输入一个数:\n");
    gets(b);
    x=strlen(a);
    y=strlen(b);
    z=1+(x>y)?x:y;   
    switch(d)
{
    case '+':for(;z>0;z--)

{   
    if(a[x-1]+b[y-1]+i-96<10)
    c[z-1]=a[x-1]+b[y-1]-96+i;
    if(a[x-1]+b[y-1]-96+i>=10)
{
    j=a[x-1]+b[y-1]+i-96;
    while(j>=10)
{
    i=0;
    j=j-10;
    i++;
}
    c[z-1]=j;
}
    x--;
    y--;
}break;
}
    for(i=0;i<z;i++)
    printf("%d",c[i]);
    return 0;
}(大神求解,通过程序实现任意两个正整数的加减乘除运算。
要求:
(1) 要求程序能够处理任意大的正整数。
(2) 要求程序以字符的形势接受用户的输入。
(3) 计算时对齐位数,注意考虑进位,退位。  
(4) 要求程序能够打印计算的结果。
(5) 要求实现多个数运算。
例如:三个数组a,b,c,通过程序实现a+b=c,a接受用户输入数为123,则a[0]=1,a[1]=2,a[2]=3;同理b为99,则b[0]=9,b[1]=9;实现加法运算时,个位相加a[2]+b[1]后个位为2,存进c中,保留进位1,十位相加a[1]+[0]后十位为1,加上进位后十位为2,存进c中,最后a数百位加上进位为2,则a+b实现了加法,结果c为222。
我只做了加法,但是输出的都是0.
搜索更多相关主题的帖子: include C语言 
2015-12-13 20:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
大数。要求任意大,但用数组实现本身就不可能任意大,因为数组的元素个数的既定的。

授人以渔,不授人以鱼。
2015-12-13 20:39
pt137642041
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-12-13
收藏
得分:0 
回复 2楼 TonyDeng
主要是不懂为啥输出的都是0
2015-12-14 12:36
快速回复:C语言类型的题
数据加载中...
 
   



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

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