C++麻烦高手看一下我的这个程序错在哪里,调试是没有报错

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:50:14
从键盘输入十个数,选择A或D,A为从小到大顺序输出,D为从大到小输出
#include"stdio.h"
void rank1(int a[10]),rank2(int a[10]);
void main()
{int i,a[10];
char s;
printf("输入十个整数: ");
for(i=1;i<10;i+=1)
scanf("%d",a);
printf("选择输入A或D: ");/*A为从小到大排列,D为从大到小排列*/
scanf("%c",&s);
switch(s){
case 'A': rank1( a ); break;
case 'D': rank2( a ); break;
}
for(i=1;i<10;i+=1)
printf("%d",a[10]);

}

void rank1(int a[10])
{int i,j,t;
for(i=1;i<10;i++)
for(j=0;i<10-i;j++)
if(a[j]>a[j+1])
t=*(a+j);
*(a+j)=*(a+i);
*(a+i)=t;
}

void rank2(int a[10])
{int i,j,t;
for(i=1;i<10;i++)
for(j=0;i<10-i;j++)
if(a[j]<a[j+1])
t=*(a+j);
*(a+j)=*(a+i);
*(a+i)=t;
}



for(i=0;i<10;i+=1)
scanf("%d",&a[i]);

for(i=0;i<10;i+=1)
printf("%d",a[i]);

scanf语句一定要+ & 的

你的程序有很大问题,printf,scanf函数用的不对,排序函数里也有问题,读入的是十个数i应从0开始