c中怎么任意输入数组

作者&投稿:独孤芳 (若有异议请与网页底部的电邮联系)
c语言怎么输入任意长度的一个数组~

首先 严格来说 不可能出现任意长度。 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度。


其次,所谓的任意长度,其实就是可变长数组。
那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。
重点在于,要开辟多大的数组来存

一般有这么几种情况
1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。
2 动态分配, 使用malloc动态分配内存。
当出现可能的不够情况,用realloc重新分配。

#include
main()
struct
int num;
char name[20];
char sex;
int age;
stu[5];
int i;
for(i=0;i<5;i++)
printf("请输入信息
");
scanf("%d",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%c",&stu[i].sex); //在%c之前加一个空格
scanf("%d",&stu[i].age);
for(i=0;i<5;i++)
printf( "*%s*",stu[i].name);

扩展资料:
函数 scanf() 是从标准输入流stdin [1] (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料来源:百度百科-scanf

对于你说的随意不知道具体是那种意思?
1、随意长度——先输入长度,在长度确定的情况下,输入数字。
2、随便输入数字,遇到某个字符(自己规定)结束。
对于1,C中一般采用malloc实现(很简单),C++用new就更方便了。
对于2,C中可以用链表自己实现一个数据结构,需要一个元素就为其申请一个元素的空间,并将其添加到当前链表中。在C++中,vector具有这种功能。百度vector,很容易理解的。

对于字符数组,可以用gets函数。。。。。其他数组么,还不知道。。。
我刚试了一下,你可以试试。。
#include<iostream>

#define Type int

using namespace std;

int main()
{
int i;
Type s[100];
for(i=0; s[i]!=0;i++)
{
cin>>s[i];
}
int j;
for(j=0;j<=i;j++)
{
cout<<s[j]<<endl;
}
return 0;
}
你的数组类型可以自定义,在define里宏定义。。。。。对于第二个循环,你在思考一下,总感觉有些不对。。。。。i在第一个数组里面,它记录了数组元素的个数。。。。

你指的任意是怎么个任意 1输入你想输入的数 2给数组赋随机值 是哪种?
若是1 #include<stdio.h>
main()
{
int i;
int a[5];
for(i=0;i<5;i++)
{printf("输入你想要的第%d个数:",i);
scanf("%d",&a[i]);}
for(i=0;i<5;i++)
printf("%d\n",a[i]);
}

#define N 10000
int s[N]; //数组开的大一点。
for(int i = 0; i < N; i++){
cin >> s[i]; //可以用 Ctrl + Z 来结束输入。
}

用死循环,下面的不合格......嘻嘻 while(1) {*****代码***}


C语言,这题,看图,怎么输入任意长度的整型数组啊?字符数组还可以当字符串...
“任意长度”实际上是做不到的,即使所用的软件平台没有限制,硬件环境也不允许。所以“任意长度”应当理解为在一个很大的空间之内没有限制地输入字符串而不用事先确定长度。鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要...

c++中如何输入在一定范围内的数组,比如a[10],每个数范围是一到十_百度...
无法避免错误输入 但可以在输入错误的时候提示重新输入 比如 int a[10], n;n = 0;while(n<10){ cin >> a[n]; if(a[n]>=1 && a[n]<=10) n++; else { cout << "input error, redo\\n"; }}

c++,定义数组,并通过键盘输入数组的值,怎么做??
在程序中经常要根据用户输入新建数组。但是c语言中不允许非常量成为新建数组时表示大小的下标:for example:int line;int col;scanf("%d,%d",&line,&col);int p[line][col];\/\/这样是不允许的!!!正确的做法是:p = (int *)malloc(sizeof(int)*line*col);访问或者写入数据时:(p + line...

在C++中如何输入数组
cout<<"下面录入数组各元素:\\n";ofstream out1("original.txt");\/* 打开文件流 *\/ for(int i=0;i<N;i++){ cout<<"a["<<i<<"]=";\/* 输入进度提示 *\/ cin>>a[i];\/* 录入 *\/ out1<<a[i]<<"\\n";\/* 顺序保存 *\/ } out1.close();\/* 关闭文件流 *\/ ofstream out2...

在C++中怎么输入保证20个字符以内的任意长度的字符数组,要能之后对每...
include <stdio.h> include <string.h> void main(){ int i,j;char s[4][20],t[20];for(i=0;i<4;i++)gets(s[i]);for(i=0;i<4;i++)for(j=0;j<3-i;j++)if(strcmp(s[j],s[j+1])>0){ strcpy(t,s[j]);strcpy(s[j],s[j+1]);strcpy(s[j+1],t);} print...

如何在c语言中让用户输入一个2维数组,我用int a【】={scanf}能否输入一...
使用循环 逐个输入 如果要逐行,可以在一行输入多个数的 ,如 scanf("%d %d %d", &a[0], &a[1], &a[2]);~

c语言中如何输入数组中的数
include<stdio.h> int main(){ int i,j;float students[10];float sum=0,max=0;for(i=0;i<10;i++){ printf("请输入的学生的成绩:");scanf("%f",&students[i]);if(students[i]>max)max=students[i];sum=sum+students[i];} printf("这几个同学的最高分为:%f\\n平均成绩为:%...

c语言中函数里面怎么输入字符串数组
在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。如:char str[10][100]; \/\/定义字符串数组,供10行,每行最多100个字节数据。int i;for(i = 0; i < 10; i ++)scanf("...

C语言设计一个函数,使其任意输入一个二维数组都可以输出一个4*4的矩 ...
include "stdio.h"void d(int a[4][4]){ for(int y=0;y<4;y++){ for(int x=0;x<4;x++){ printf("%d ",a[y][x]);} printf("\\n");} } void main(){ int a[4][4]={1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};d(a); \/\/调用 } ...

用C语言怎么输入为数组赋值,求代码
include <stdio.h>int main(void){int a[5];printf("请输入5个数字:");for(int i=0;i<5;i++) { scanf("%d",&a[i]);} for(i=0;i<5;i++) { printf("%d ",a[i]);} printf("\\n");return 0;}

晋中市19688931102: C语言如何定义一个N行N列的二维数组任意输入数据 -
万采亮睛: 对,数组下标是一个确定的值.但最好用define 定义数组下标,因为这样修改数组长度很方便

晋中市19688931102: c语言 如何用数组形式一次性输入几个数字 中间有空格 不换行 -
万采亮睛: 给个例子你吧 #include<> int main() { int n[8],i; //定义一个有8个元素的一维数组 for(i=0;i<8;i++) scanf("%d",&n[i]); //一般数组用循环输入,二维就用2个循环输入,不懂可以追问我 printf(""); return 0; }

晋中市19688931102: 在C语言中怎样用数组实现键盘任意输入的10数,然后输出这10个数. -
万采亮睛: #includeint main(){ int ins[10]; int i; printf("Enter 10 integers: "); for(i=0;iscanf("%d",&ins[i]); for(i=0;iprintf("%d ",ins[i]); printf("\n"); return 0; }当然,我假设你输入的都是整数.

晋中市19688931102: 如何用C写程序能够输入任意行任意列的二维数组 -
万采亮睛: 使用动态数组,我这里只提供创建动态数组函数,其他就像数组一样使用就行了.int row=0; //函数 int col=0; //列数 int i; int ** arr=NULL; //下面假设存储的数据类型为int printf(“请输入二维数组的行数和列数:”); scanf("%d%d",&row,&col...

晋中市19688931102: c语言如何输入任意长度的字符串数组 -
万采亮睛: “任意长度”实际上是做不到的,即使所用的软件平台没有限制,硬件环境也不允许.所以“任意长度”应当理解为在一个很大的空间之内没有限制地输入字符串而不用事先确定长度.鉴于这种理解,可以定义一个输入函数,先动态申请一个较...

晋中市19688931102: C语言,如果用键盘向数组中输入任意多个数字? -
万采亮睛: #include <stdio.h> int main() {int a[1000],b[1000]; //初始化定义时必须有确定数目int i;int z;//一般1000个就够多了,如果实在不够的话要采用动态分配内存方法for(i=0;;i++){ if(!scanf("%d",&a[i])) //scanf函数如果没有得到一个输入的话会返回0break;}//运行本程序将会循环要你输入数字,一直到你输入非数字为止return 0; }

晋中市19688931102: c语言如何输入带字符的数组 -
万采亮睛: 设置该数组为字符型.例如:char a[3][5].这样做的话数组当中的所有存储的都被处理为字符.所以那个1,2,3之类的都变成字符了.不是数字.如果想要让1,2,3变成对应的数字,让他们减去字符'0'即可.

晋中市19688931102: c语言编程,我想随便输入几个数,再输出要用到数组,但不知怎么用,希望哪位高手教教我,谢谢! -
万采亮睛: #include<stdio.h> void main() { int Len; int i,a[Len]; printf("输入数组长度: \n"); scanf("%d",&Len]); for(i=0;i<Len;i++) { printf("输入数组第%d个元素:\n",i); scanf("%d",&a[i]); printf("%d ",a[i]); } } 您说的是这个意思吗?

晋中市19688931102: 如何用c语言这样输入多维数组,即:输入完第一维后按回车,然后输入第二维,再回车 -
万采亮睛: //******************************************************************************// 如何用c语言这样输入多维数组 以二维数组为例// 然后输入只是输入的形式而已,不影响数组接收数据的 //******************************************************************************#...

晋中市19688931102: 如何用C语言实现从键盘任意输入n个数. -
万采亮睛: 手动管理内存 int max = 100; int* tmp = 0; int* buf = malloc(sizeof(int)*max); for (int i = 0; scanf("%d", buf+i); ++i) { if (i > max) // 如果buf已经满了, 那么内存扩大一倍 buf = realloc(buf, sizeof(int)*(max*=2) ); } 可以一直安全的输入到2的32次方除以8个数字, 如果内存够的话

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网