C語言,設計一個動態陣列,由用戶輸入陣列陣列元素個數,并賦值每個元素一個隨機二位整數,最后由小到大輸出該陣列。
uj5u.com熱心網友回復:
#include <stdio.h>
#include <stdlib.h>
void bubble_sort(int *arr, int len);
int main()
{
int n, *arr, i;
scanf("%d", &n);
arr = (int *)malloc(sizeof(int) * (n));
if (!arr)
return -1;
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
bubble_sort(arr, n);
for (i = 0; i < n; i += 1)
printf("%d ", arr[i]);
putchar(10);
/*
for (i = 1; i < n+1; i += 2)
printf("%d ", arr[i]);
putchar(10);
for (i = 2; i < n+1; i += 2)
printf("%d ", arr[i]);
putchar(10);
*/
return 0;
}
void bubble_sort(int *arr, int len)
{
int i, j;
int tmp;
for (i = 0; i < len; i++) {
for (j = 0; j < len-1; j++) {
if (arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
供參考~
uj5u.com熱心網友回復:
方案一,使用變長陣列,需要編譯器支持C99
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main( void )
{
int num=0,i=0;
printf("輸入陣列長度:");
scanf( "%d", &num );
int arr[num];
srand( time(0) );
for( i=0 ; i<num ; i++ )
{
arr[i] = rand()%100;
printf("%d ", arr[i] );
}
return 0;
}
方案二,申請記憶體,C90亦可
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main( void )
{
int num=0,i=0;
printf("輸入陣列長度:");
scanf( "%d", &num );
int* arr = calloc( num, sizeof(int) );;
srand( time(0) );
for( i=0 ; i<num ; i++ )
{
arr[i] = rand()%100;
printf("%d ", arr[i] );
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268202.html
標籤:C語言
