#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<stdio.h>#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 20void 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");}
(1) int a[6];改为 int n,a[20]; scanf("%d",&n); if(n>20) { printf("Error!\n"); return 1; }(2)将后面各有关语句中的:5 改为 n4 改为 n-16 改为 n+1