FOSS
//这个是用静态数组储存整数
#include<stdio.h>
int main(void)
{
int a[100],i=0,j;//如果n小于100的话就不需要用动态数组,或者你可以把100改成更大的数,比如100000000......
printf("请输入你要输入的数字,以ctrl+z结束:");
while(scanf("%d",&a[i])==1)
{
i++;
}
for(j=0;j<i;j++)
{
printf("%d ",a[j]);
}
return 0;
}
//用动态数组储存整数,这个是知道n的大小,避免浪费内存
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n1,i;
int *array;
printf("输入n的大小:");
scanf("%d",&n1);
array=(int*)malloc(n1*sizeof(int));//申请动态数组
printf("输入数据: ") ;
for(i=0;i<n1;i++)
{
scanf("%d",&array[i]);
}
for(i=0;i<n1;i++)
{
printf("%d ",array[i]);
}
free(array);
return 0;
}
//如果不知道n的值,也就是不管输入多少输出也多少的话,可以用下面的代码
#include<stdio.h>
#include<malloc.h>
int main(void)
{
int *ptr = (int *)malloc(sizeof(int));
int i = 0, j, tempNum = 0;
printf("请输入n个整数,输入非数字表示结束:\n");
while(scanf("%d",&tempNum) == 1)
{
if(i == 0)
*ptr = tempNum;
if(i >= 1)
{
ptr = (int *)realloc(ptr, (i + 1) * sizeof(int));
*(ptr + i) = tempNum;
}
i++;
}
for(j = 0; j < i; j++)
{
printf("%d ",*(ptr + j));
}
printf("\n");
}
//综上,还是第一种简单暴力......