请教关于字符和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',运行结果就错了呢!