先隨便寫寫,有空再整理。
直接貼代碼
#include <stdio.h> #include <stdlib.h> //從一行標准輸入中格式化輸入一個不定長數組 void inputVec (); //讀入給定行數的不定長數組 void inputVecs1 (); //讀入不確定行數不定長數組 void inputVecs2 (); void main () { inputVecs1 (); return; } void inputVecs1 () { while (!feof(stdin)) { int size = 0; int i = 0; int k = 0; int arr[64] = {0}; i = scanf ("%d", &arr[size]); k = getchar(); ++size; while (EOF != i && ',' == k && 64 >= size) { i = scanf ("%d", &arr[size]); k = getchar(); ++size; printf ("%d:%d ", i, k); } printf ("\n%d\n",size); for (i = 0; i < size; ++i) { printf ("%d ", arr[i]); } printf ("\n"); } } void inputVecs2 () { int n = 0; int j = 0; scanf ("%d", &n); while (j < n) { int size = 0; int i = 0; int k = 0; int arr[64] = {0}; i = scanf ("%d", &arr[size]); k = getchar(); ++size; while (EOF != i && ',' == k && 64 >= size) { i = scanf ("%d", &arr[size]); k = getchar(); ++size; printf ("%d:%d ", i, k); } printf ("\n%d\n",size); for (i = 0; i < size; ++i) { printf ("%d ", arr[i]); } printf ("\n"); ++j; } } void inputVec () { int size = 0; int i = 0; int k = 0; int arr[64] = {0}; i = scanf("%d", &arr[size]); k = getchar(); ++size; while (EOF != i && size <= 64 && ',' == k) { i = scanf("%d", &arr[size]); k = getchar(); ++size; printf ("%d:%d ", i, k); } printf ("\n%d\n",size); for (i = 0; i < size; ++i) { printf ("%d ", arr[i]); } printf ("\n"); }
測試數據(控制台輸入的話就變成輸入一行然后一個回車鍵,可以把所有內容存到txt中然后重定向):
1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,16,17,18,19,20 21,22,23,24,25,26,27,28,29,30