先隨便寫寫,有空再整理。
直接貼代碼
#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
