| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 854 人关注过本帖
标题:请教关于字符和ASCII码转换的问题
只看楼主 加入收藏
z450558237
Rank: 2
等 级:论坛游民
帖 子:48
专家分:11
注 册:2014-10-21
结帖率:55.56%
收藏
已结贴  问题点数:10 回复次数:3 
请教关于字符和ASCII码转换的问题
要求如下:从键盘输入由数字符构成的一个字符串(字符串长度小于5),请编写一个函数,计算由这些字符可构成的最大的整数和最小的整数,每个字符用一次。

下面是我写的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Sort(char*p);
int MaxNumber(char*p);
int MinNuber(char*p);

void main()
{
    char str[6],*p=str;
        printf("请输入数字字符串:\n");
    gets(p);
    Sort(p);
        printf("排序后的数组为:\n");
    puts(p);
    printf("最大数为:%d\n",MaxNumber(p));
    printf("最小数为:%d\n",MinNuber(p));
    system("pause");
}

void Sort(char*p)
{
    int i,j;
    char temp;
    for(i=0;i<strlen(p);i++)
        for(j=0;j<strlen(p)-i;j++)
        {
            if(*(p+j)<*(p+j+1))
            {
                temp=*(p+j);
                *(p+j)=*(p+j+1);
                *(p+j+1)=temp;
            }
        }
}

int MaxNumber(char*p)
{
    int sum,i;
    sum=0;
    char c;
    for(i=0;i<strlen(p);i++)
    {
        c=*(p+i);
        sum=sum*10+c-'0';
    }
    return sum;
        printf("\n");
}

int MinNuber(char*p)
{
    int sum,i;
    sum=0;
    char c;
    for(i=strlen(p)-1;i>=0;i--)
    {
        c=*(p+i);
        sum=sum*10+c-'0';
    }
    return sum;
    printf("\n");
}

这个代码是正确的,但是为什么我在将用红色标注的语句中的c改为'c',运行结果就错了呢!
搜索更多相关主题的帖子: include 字符串 最大的 键盘 
2015-12-15 05:18
z450558237
Rank: 2
等 级:论坛游民
帖 子:48
专家分:11
注 册:2014-10-21
收藏
得分:0 
下面是2个运行结果。
1.c没加‘’的结果
图片附件: 游客没有浏览图片的权限,请 登录注册


2.c加了‘’的结果
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-12-15 05:22
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
楼主这还是混沌未开的状态啊。
'c’是一个常量,其实际数值是99,同式子里的'0'一样,'0'的实际数值为48,所以你的表达式“sum=sum*10+'c'-'0';”相当于“sum=sum*10+99-48;”.
你程序里的c是你定义的一个char型变量,受限于char变量的数据范围,c的值可以是-127到128之间的任何值。

能编个毛线衣吗?
2015-12-15 08:25
z450558237
Rank: 2
等 级:论坛游民
帖 子:48
专家分:11
注 册:2014-10-21
收藏
得分:0 
回复 3楼 wmf2014
做了一晚上的作业头晕了。。现在还没睡呢。。。,谢谢啊
2015-12-15 08:36
快速回复:请教关于字符和ASCII码转换的问题
数据加载中...
 
   



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

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