问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我用c语言编程?

发布网友 发布时间:2024-03-06 22:14

我来回答

4个回答

热心网友 时间:2024-04-12 01:03

关键是要把基数大于10的进制的计算控制好。

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int base(char *p,int r){
    int nDec,i;
    for(nDec=i=0;p[i];i++)
        (nDec*=r)+=(p[i]<='9' ? p[i]-'0' : (p[i]&0xDF)-0x37);
    return nDec;
}
int main(void){
    int i;
    char d[11],r;
    while(1){//这个循环保证输入合法
        printf("Please enter r & d(like 3 211,0 0 end)...\n");
        scanf("%d%s",&r,d);
        if(r>1 && r<17){//基数在2~16范围内才处理
            for(i=0;d[i];i++)
                if((d[i]<='9' ? d[i]-'0' : (d[i]&0xDF)-0x37)>=r){
                    r=17;
                    break;
                }
            if(r-17)
                printf("%s(%d) <--> %d\n\n",d,r,base(d,r));
        }
        if(r>16 || r==1)//若输入有错则要求重新输入
            printf("Error, redo: ");
        else if(r==0 && *d=='0')//输入0 0结束
            break;
    }
    printf("\n");
    return 0;
}

热心网友 时间:2024-04-12 00:59

你要写什么程序??

热心网友 时间:2024-04-12 01:04

/*
请输入进制和数字串(空格隔开) : 3 211
22
请按任意键继续. . .
*/
#include <stdio.h>

long Stod(char s[],int base) {//将base进制的数字串转换为10进制数
long i,t,n = 0;
for(i = 0; s[i]; ++i) {
if((s[i] >= 'a') && (s[i] <= 'z')) t = s[i] - 'a' + 10;
if((s[i] >= 'A') && (s[i] <= 'Z')) t = s[i] - 'A' + 10;
if((s[i] >= '0') && (s[i] <= '9')) t = s[i] - '0';
n = n*base + t;
}
return n;
}

int main() {
int base;
char s[10];
printf("请输入数字串和进制(空格隔开) : ");
scanf("%d %s",&base,s);
printf("%d\n",Stod(s,base));
return 0;
}

热心网友 时间:2024-04-12 01:04

函数名也叫 base,其第一个参数也叫 base,可以么?
另,str 是 C 保留字吧?能用作变量名么?

long base(int b,char *p)
{
long n;
if *p<=57 then n=*p-48; else n=*p-55;
*p++;
while(~*p)
{
n=n*b;
if *p<=57 then n=n+(*p-48); else n=n+(*p-55);
*p++;
}
return n;
}
void main()
{
int b;char s[20];
scanf(&b,s);
printf("%d",base(b,s));
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 在计算机网络术语中,WAN的中文含义是?37 10&#47;100&#47;1000BASE-T端口 是什么意思246 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 最遥远的地方——( )概括成语 最遥远的地方用成语回答 以太网的100BASE-T标准的基本规则是什么2 路由器上的10base-t&#47;100base-tx是什么意思87 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 快速以太网的100BASE-T包括哪些内容12 100Base-T是什么意思 那个Base-T代表什么啊43 61键电子琴:低音1-7 高音1-7在哪? 3个音共21个 那还有17个白键是干... 《幼儿园工作规程》中描述的幼儿园保育员的主要职责包括哪些_百度... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 个人所得税如果不申报有什么后果 奥迪a6l的发动机是什么型号的 曾经的恋人,可以再做朋友吗? 怎么统计表格中的空格数目? 什么叫打个照面 曾经的恋人,分开以后还能做朋友吗? 设计一程序,实现将任意一个十进制整数转换为2-16进制中任何...3 用PHP写一个进制转换的程序。增加如下图的一个表单,用PHP...13 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 求c语言将十进制数转换为16进制的函数281 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 一心一世界 一人一悲伤 一岁一枯荣 一生一太平 求横批 大神们 横批:人的一生 ...如果从事违法违规行为,可能构成的犯罪有哪些 人勤一世千川绿 牛奋四蹄万顷黄。求横批 200之内能够被9正除的自然数有多少个 氟西汀一天吃4片有关系没 ...为“小红楼梦”。其中《海国记》“册封琉球国 热烈的反义词是什么,勉强的反义词是什么汇集的反义词是什么? 求乔布斯去世的准确时间和4GS发布的准确时间 为什么说红色文化是新时代中国特色社会主义文化的活水源头 身体好不好 看早上的第一泡尿(2) ...帮忙解释一下下图中第四条前向通路,p4=-G1G2G3K我 历史会证明,中国放弃G2是正确的,还是错误的呢?中国拒绝美国提出的... 12mm的碧玺手串怎样分等级? 骨折整5年了.第二次手术(“取钢板.,)已2年、可骨折的那块骨头还很疼...