#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int i,j;
int a[6];
char ans;
while(1)
{
for(i=0; i<5; i++)
scanf("%d",&a[i]);
if(a[0]>a[1])
{
for(i=0; i<4; i++)
for(j=i+1; j<5; j++)
{
if(a[i]<a[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0; i<5; i++)
printf("%d ",a[i]);
printf("\n");
printf("Input a new number: ");
scanf("%d",&a[5]);
for(i=0; i<5; i++)
for(j=i+1; j<=5; j++)
{
if(a[i]<a[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i<6; i++)
printf("%d ",a[i]);
printf("\n");
}
else
{
for(i=0; i<4; i++)
for(j=i+1; j<5; j++)
{
if(a[i]>a[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0; i<5; i++)
printf("%d ",a[i]);
printf("\n");
printf("Input a new number: ");
scanf("%d",&a[5]);
for(i=0; i<5; i++)
for(j=i+1; j<=5; j++)
{
if(a[i]>a[j])
{
int t=a[i];//大小
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i<6; i++)
printf("%d ",a[i]);
printf("\n");
}
printf("\n按Y键继续或按任意键退出");
ans=getch();
if (ans!='y'&&'Y')
break;
}
}
我自己写的程序只能输入固定的五个数据,请大家帮忙改一下,可以输入小于等于20个数据!
在线等,谢谢了!
#include<malloc.h>
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");
}
给你一个可用的呢·
#include <stdio.h>
#define MAX_RECORD 20
void ArraySortASC(int array[],int length);
void ArraySortDESC(int array[],int length);
void ArraySort(int array[],int length,int type);
void PrintArray(int array[],int length);
int main()
{
int i;
int array[MAX_RECORD];
int length = 0;
printf("Please enter the sum:");
scanf("%d",&length);
if(length > MAX_RECORD)
{
printf("Error!Can not Support > %d\n",MAX_RECORD);
return -1;
}
for(i = 0; i < length; i++)
{
printf("Enter the %d number:",i + 1);
scanf("%d",&array[i]);
}
printf("-----------------befor sort-----------------\n");
PrintArray(array,length);
ArraySort(array,length,1);
printf("-----------------sort ASC--------------------\n");
PrintArray(array,length);
ArraySort(array,length,-1);
printf("-------------sort DESC----------------\n");
PrintArray(array,length);
return 0;
}
void ArraySortASC(int array[],int length)
{
int i;
int j;
int temp;
for(j = length - 1; j > 0; j--)
{
for(i = 0; i < j; i++)
{
if(array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
}
void ArraySortDESC(int array[],int length)
{
int i;
int j;
int temp;
for(j = length - 1; j > 0; j--)
{
for(i = 0; i < j; i++)
{
if(array[i] < array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
}
void ArraySort(int array[],int length,int type)
{
if(type == 1)
{
ArraySortASC(array,length);
}
else if(type == -1)
{
ArraySortDESC(array,length);
}
else
{
printf("paramter error!\n");
}
}
void PrintArray(int array[],int length)
{
int i;
for(i = 0; i < length; i++)
{
printf("%d ",array[i]);
if((i % 5 == 0) && i > 5)
{
printf("\n");
}
}
printf("\n");
}
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本回答被提问者采纳