962121投诉物业不执行:帮忙看看下面的程序 就是要把输入的字母排列 并输入第10个

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/08 20:20:48
#include<math.h>
#include<stdio.h>
void main(){
int n;
scanf("%d",&n);
char*a;
a=new char[];
int i;
for(i=0;i<n;i++){
scanf("%c",(a+i));
}
int j;
for(j=n-1;j>0;j--){
for(i=0;i<j;i++){
if((*(a+i))>*((a+i+1))){
char temp;
temp=*(a+i);
*(a+i+1)=*(a+i);
*(a+i)=temp;
}
}
}
printf("%c",*(a+9));
delete []a;
}

用unsigned char, 不用char。

下例拍入一行字符,排队,输出从小到大排列,并输出第十个排队后的字符。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main()
{
unsigned char a[500],temp;
int i,j,n;

for (i=0;i<500;i++) a[i] = 0;

n = 0;
while ( ( a[n] = getchar()) != '\n' ) {
n = n + 1;
if (n >= 500) break;
};
printf("n=%d\n",n);

for (i=0;i<n-1;i++) {
for (j=i+1;j<n;j++) {
if (a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
};
};
};

for (i=0;i<n;i++){
fprintf(stdout,"%c",a[i]);
}
fprintf(stdout,"\n");

fprintf(stdout,"The 10th is %c",a[9]);

exit(0);
}