程序输出不一样 是哪里出了问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:41:01
#include "iostream.h"
#include "iomanip.h"
void sort(char a[],int size);//按字母表排列
int main()
{
char num[]={'c','a','d','e','b','h'};
const int size=sizeof(num)/sizeof(char);
sort(num,size);
cout<<"排列后的字母"<<endl;
for(int i=0;i<size;i++)
{
cout<<setw(2)<<num[i];
}
cout<<endl;
return 0;
}
void sort(char a[],int size)
{
cout<<"排序以排的字母"<<endl;
for(int i=0;i<size;i++)
{
cout<<setw(2)<<a[i];
}
cout<<endl;
for(int j=0;j<size;j++)
{
char min=99,mink=j;
for(int k=j;k<size;k++)
{
if(a[k]<min)
{
min=a[k];
mink=k;
}
}
int temp=a[j];
a[j]=a[mink];
a[mink]=temp;
}
}

屏幕输出为
排序以前的字母

min=99这里的问题
可能是你记错了小写'a'的ANSIC为97而不是99
99是小写的'c'
min应该先赋值为最大值,如'z'
另外,提醒一下,包含库文件用<>
而不要用"",否则在某些情况下会出问题