| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 942 人关注过本帖
标题:c语言基础,急急急急急急急急
只看楼主 加入收藏
skq821021
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-5-26
收藏
 问题点数:0 回复次数:5 
c语言基础,急急急急急急急急
(1)写一函数 int  chtoint(char s[]);能把字符串s中的字符串(16进制)转换成int型值(10进制),如果s中的字符串是“-A23B”,则应返回- 41531。(要求用字符数组实现)
(2)写一函数 char*  inttoch(int  i);能把整数i中的数字(10进制)换成字符串(16进制),如果i= 41531,则应返回“A23B”。(要求用指针实现)
搜索更多相关主题的帖子: c语言 基础 
2008-05-26 16:22
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
哎,十六进制好象没有负数啊
关于你的2个问题,详见“ssanf”函数。(有两个s)

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-26 17:18
miaohg
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-25
收藏
得分:0 
这个是我写的,敬请指教!

#include "Stdio.h"
#include "Conio.h"
#include "ctype.h"
#define N 20

char str[N];

unsigned long int power(int base,int exp)
{
    int i;
    unsigned long int mid=1;

    for(i=0;i<exp;i++)
    {
         mid*=base;
     }

     return mid;
 }


long chtolong(char *ps)
{
    unsigned long int ch;
    int len, i;
    long digit=0;
    char *s=ps;


    len=strlen(s);

    for(i=0;i<len;i++,s++)
    {
        if(isalpha(*s))
        {
            ch=tolower(*s)-87;        

            digit+=power(16,len-1-i)*ch;
        }
        else if(isdigit(*s))
        {
            ch=*s-'0';
            digit+=power(16,len-1-i)*ch;
        }
        else if(*s=='+'||*s=='-')
        {
                  ;                         /*printf("%c",*s);*/
        }
        else
        {
            printf("\nInput error!!!\n");
            return 0;

        }
    }

    if(*ps=='-')
        digit=-digit;
    return digit;

}


   
char *longtoch(long int n)
{
    int i=1,j, k;
    char ch;


    str[0]=0;
    if(n<0)
    {
        str[0]='-';         
        n=-n;
    }

    while(n!=0)
    {
        if(n%16>=10)
            str[i++]=n%16+87;        
        else
            str[i++]=n%16+48;
            
        n/=16;
    }

    j=(i-1)/2;

    for(k=1;k<=j;k++)
    {
        ch=str[k];
        str[k]=str[i-k];
        str[i-k]=ch;


    }

    return str;
}



int main(void)
{
   


    long int in, out;
    int i;

    printf("\nInput a string:\n");
    gets(str);


    out=chtolong(str);
    printf("\nOutput a long int from string:%ld\n",out);
    getch();

    printf("\nInput a long int digit:\n");
    scanf("%ld",&in);

    longtoch(in);
    printf("\nOutput a string from a long int :%s\n",str);

    getch();
    return 0;
}
2008-05-26 22:34
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
那个啥,是数字就有正负之分吧?看是原码还是补码或者直接给你符号……
刷完版了,去睡觉……明天早晨起来看《琴帝》,每天早晨有新小说看的感觉真舒服啊……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-27 00:36
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
三楼的代码写得不好

[color=white]
2008-05-27 08:54
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
我在看《刑名师爷》,超好看
还有《恶魔法则》也不错。
前段时间看到了一个《修真的电脑程序员》,我郁闷ing……

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-27 14:00
快速回复:c语言基础,急急急急急急急急
数据加载中...
 
   



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

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