为了账号安全,请及时绑定邮箱和手机立即绑定

输入n个整数并输出,用c语言表达

输入n个整数并输出,用c语言表达

C
cheese_ki 2017-05-14 00:53:36
输入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");
}
//综上,还是第一种简单暴力......


查看完整回答
1 反对 回复 2017-05-14
  • 2 回答
  • 0 关注
  • 3307 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信