| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 880 人关注过本帖
标题:望高手给出正确答案
只看楼主 加入收藏
红楼夜听雨
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2009-11-4
结帖率:50%
收藏
已结贴  问题点数:30 回复次数:6 
望高手给出正确答案
通过程序实现任意两个正整数的加减乘除运算
要求:(1)要求程序能够处理任意大的正整数
      (2)要求程序以字符的形势接受用户的输入
      (3)计算是对齐位数,注意考虑进位,退位
      (4)要求程序能够打印计算结果
      (5)可以进行多个数运算
搜索更多相关主题的帖子: 用户 正整数 正确答案 要求 
2009-11-11 19:09
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:5 
任意大?
没有任意大的
long 的范围-2147483648-2147483647
LZ可以自己先试试
问题不难,有问题大家再分析,这样才会学到东西

想象力征服世界
2009-11-11 19:29
xiefeng122
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:126
专家分:139
注 册:2009-4-1
收藏
得分:5 
作业贴···
2009-11-11 19:55
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:5 
LZ可以先试试···我也没什么好思路,就是用字符读入,然后直接模拟四则运算就行了··不过老师够狠···乘除也来···还好是对齐位数···先试试吧
    下面是我以前做的大数相加的代码,位数不对齐,要判断,只是提供个思路,就那样模拟就行了,LZ如果肯去做的话,必定受益很多··有问题再把代码发上来

程序代码:
#include<stdio.h>
#include<string.h>
void inv(char str[], int n)
{
    int i, j;  char temp;
    for(i=0, j=n-i-1; i<j; i++, j--)
        temp=str[i], str[i]=str[j], str[j]=temp;
}
        
int main()
{
    int i, j=0, n, m=0, len1, len2;
    char str1[1001], str2[1001];
    scanf("%d\n",&n);m=n;
    while(n--)
    {

        scanf("%s%s",str1,str2);
        printf("Case %d:\n%s + %s = ",++j,str1,str2);
        len1=strlen(str1);
        len2=strlen(str2);
        inv(str1, len1);
        inv(str2, len2);
        if(len1<=len2)
        {
            for(i=0; i<len1; i++)
            {
                str2[i]+=str1[i]-'0';
                if(str2[i]>'9' && i<len2-1)
                    str2[i]-=10, str2[i+1]++;

            }
            if(str2[len2-1]>'9')
                str2[len2-1]-=10, str2[len2]='1', str2[len2+1]='\0';
            inv(str2, strlen(str2));
            printf("%s\n",str2);
        }
        else
        {
            for(i=0; i<len2; i++)
            {
                str1[i]+=str2[i]-'0';
                if(str1[i]>'9')
                    str1[i]-=10, str1[i+1]++;
            }
            inv(str1, strlen(str1));
            printf("%s\n",str1);
        }
        if(n>0)
            printf("\n");
    
    }
    return 0;
}
2009-11-11 22:10
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:5 
自己先做做先 ···不懂的再拿上来提问 这样才有进步·····
2009-11-13 23:28
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:5 
自己先想想  先思考了再说i
2009-11-14 11:20
xiepanqi
Rank: 2
等 级:论坛游民
帖 子:43
专家分:55
注 册:2009-10-24
收藏
得分:5 
程序代码:
#include "stdio.h"
void main()
{
    int a,b,c;
    char ch;
    printf("请以a+b的格式输入");
    scanf("%d%c%d",&a,&ch,&b);
    switch(ch)
    {
        case'+':
            c=a+b;
            rintf("%d+%d=%d",a,b,c);
            break;
        case'-':
            c=a-b;
            printf("%d-%d=%d",a,b,c);
            break;
        case'*':
            c=a*b;
            printf("%d*%d=%d",a,b,c);
            break;
        case'/':
            c=a/b;
            printf("%d/%d=%d",a,b,c);
            break;
        default:printf("无解");   
    }
}
2009-11-14 11:23
快速回复:望高手给出正确答案
数据加载中...
 
   



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

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