C语言数组 输入n个数据(n由操作者从键盘输入,n<20)怎么输,要排序
答案:3 信息版本:手机版
解决时间 2019-10-04 21:28
已解决
2019-10-03 21:17
最佳答案
2019-10-03 22:30
(1)
int a[6];
改为
int n,a[20];
scanf("%d",&n);
if(n>20) {
printf("Error!\n");
return 1;
}
(2)
将后面各有关语句中的:
5 改为 n
4 改为 n-1
6 改为 n+1
全部回答
1楼
2019-10-04 01:12
你的程序的目的是什么? 我给你一个动态的,你可以先选择输入的数字的个数限制在20以内!~~~
#include
#include
#include
int main()
{
int i,j,n;
int a[21];
char ans;
printf("请输入你要输入的数字的个数n(n<=20):");
scanf("%d",&n);
printf("请输入%d个数字:\n",n);
while(1)
{
for(i=0; ia[1])
{
for(i=0; i<4; i++)
for(j=i+1; ja[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0; ia[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i
printf("%d ",a[i]);
printf("\n");
}
printf("\n按y键继续或按任意键退出");
ans=getch();
if (ans!='y'&&'y')
break;
}
}
2楼
2019-10-04 00:10
#include
#include
void main()
{
int n = 1, temp = 0;
int i = 0, j = 0;
printf("请输入个数n(n<20):");
scanf("%d",&n);
int *ptr = (int *)malloc(sizeof(int) * n);
printf("请输入%d个数:\n",n);
for(i = 0; i < n; i++)
scanf("%d",(ptr + i));
for(i = 0; i < n - 1; i++)
{
for(j = i + 1; j < n; j++)
{
if(*(ptr + j) < *(ptr + i))
{
temp = *(ptr + i);
*(ptr + i) = *(ptr + j);
*(ptr + j) = temp;
}
}
}
printf("排序后:\n");
for(i = 0; i < n; i++)
printf("%d ",*(ptr + i));
printf("\n");
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯