输入n个整数并输出,怎么用c语言表达
2 回答
已采纳
FOSS
TA贡献2条经验 获得超1个赞
//这个是用静态数组储存整数 #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"); } //综上,还是第一种简单暴力......
- 2 回答
- 0 关注
- 3307 浏览
添加回答
举报
0/150
提交
取消