c语言输入不定长数组,第一个数总是消失,程序如下,请大牛回答,怎么改

作者&投稿:伯毕 (若有异议请与网页底部的电邮联系)
c语言 不定长数组~

数组本身就是静态连续分配的,其有数据类型,也就是说是固定长度的,不定义就默认,你写的就是char 型的,长度为256;
动态数组就借助于指针了,char *c = (char*)malloc(sizeof(char) * strlen);strlen是所定义的数组的维数,这样在定义后,在栈内分配,不用了一定要free(c),不然,系统一直占用!

希望可以帮到你,如果满意请采纳!

把C学明白,姑且需要时间。C++大牛?Are u kidding?一本C++primer都比砖头厚了,更别提类模板、STL标准库。能成为C++的大虾就足够笑傲江湖了,大牛可望不可即。

输入的时候 在前面加一个空格 因为被你的getchar()把1拿走了
或者代码改为
do
{
scanf("%d",&a[i]);
i++;
}while((getchar())!='\n');

while((c=getchar())!='\n')
{
a[i]=c;
i++;
}


请问在c语言中输入一串字符串(字符串长度不定,随意输入),赋值到数组...
include "stdio.h"int main(){ char str[100];char c;int i,j;bool b=true;while (b){ for(i=0;i<100;i++){\/\/输入 c=getchar();if(c=='\\n') {str[i]='\\0';break;} str[i]=c;} for(j=0;j='0'&&str[j]<='9') {printf("包含数字,请重新输入。\\n\\n");break...

C语言中输入的输超过定义的数组长度,超过的数去哪了?
C语言的键盘输入都存储在缓冲区内,如果你的程序没有把这个数读取出来,输入的数据会被保留在缓冲区内。

C语言 输入一个没有长度限制的字符串数组
两种办法,设一个空数组并且初始化为空char ch[]="",或者用指针char *ch,然后gets(ch)就可以了

c语言如何实现无限长的数组?
C语言支持定义一个不显式定义长度的数组,即通过初始化数据来分配数组长度。比如int a[] = {1,2,3,4,5}; 数组a的长度没有显式给出,由于有5个初始化数据,所以分配空间长度为5个int型。但是无论如何定义,数组的长度都是固定的,在定义的时候就已经分配好空间,从这个角度上C语言无法定义无限...

如何用java语言创建不定长动态数组
public class intArray { private int theSize=0;;private int a_int[]={};public intArray(int a[]){ this.a_int=a;this.theSize=a.length;} public intArray(){ this.theSize=0;} public int getSize(){ return this.theSize;} public int getAt(int nIndex){ return this.a_int...

在c语言中如何做到输入一个数字,就定义了n(为输入的数字)个数组?
这个是没办法做到的。数组定义在编译链接阶段就需要确定下来,在系统启动时需要在数据段分配指定空间。所以是不能在代码运行过程中动态定义数组的。你可以用动态申请内存的方法为数组分配空间,但需要用一个统一的指针的偏移动作来实现访问不同数组的功能。

C语言数组输入输出问题 定义一个数组 输入不定个数的数字 怎么弄 输出...
是申请一个空间 while(scanf("%d",&a)!=EOF){\/\/如果输入的不是EOF结束 stack[i]=a;\/\/放到数组里面 i++;\/\/记录++ stack=(int *)realloc(stack,sizeof(int));\/\/realloc(address,size)向address上面追加size个空间 }for(j=0;j

c语言如何输入一个行数不确定的n*2的数组?结束条件是最后输入的是0 0...
include<stdio.h>int main(){ int a,b; while(1) { scanf("%d %d",&a,&b); if(a==0 && b==0) break; } return 0;}

如何 用c语言 实现输入不定数目的一行整数
1 在输入前,先输入一个总数,然后输入总数个整数。2 约定输入的结束符,如遇到换行结束输入,或者以EOF为结束输入标记。对于每种情况,处理的方式大致相同,但略有区别。1 不需要保存每个值,而是只需要使用该值即可。这样可以读入每个数,逐个处理即可。2 需要保存所有值的,可以将所有值保存在数组中...

C语言中输入不确定个数的数值,要存入一个数组中,将数值按大到小排列...
include "stdio.h"include "conio.h"void main(){ int a[100];int i,j,n=0,tt,sum=0;printf("请输入若干整数,-1作为输入数据的结束\\n");scanf("%d",&tt);while(tt!=-1){ a[n]=tt;scanf("%d",&tt);n++;} printf("原来的次序\\n");for(i=0;i<n;i++)printf("%6d",a...

陇西县17054789950: c语言输入不定长数组,第一个数总是消失,程序如下,请大牛回答,怎么改 -
司马建美心: 输入的时候 在前面加一个空格 因为被你的getchar()把1拿走了 或者代码改为 do{scanf("%d",&a[i]);i++;}while((getchar())!='\n');

陇西县17054789950: c语言,输入一个长度不定的整型数组(1000位以内),我要怎么知道该数组的长度. -
司马建美心: 一般有两种方式. 1 第一个输入为数组长度. 比如输入 3 12 45 87 2 以特定输入为结束标记, 比如 以0,-1或者EOF作为结束标记.或者整行输入,以换行符为结束标记. 一般来说,在自动判题系统中,以EOF为结束, 或先输入长度, 是最为常见的两种方式.

陇西县17054789950: C语言输出一个输入的数组里的完美数,为什么只能输出第一个呢? -
司马建美心: 你的累加变量n,在每个数判断完后,没有清零.完整的C语言程序如下(改动的地方见注释)#include int main() { int i,j,m,n,b,case_num; n=0; scanf("%d", &case_num); int arr[100]; for(j=0;j scanf("%d",&arr[j]); } for(i = 0; in=0;//这里加一句,把n清零 for(m=1;m if(arr[i]%m==0) n+=m; } if(n==arr[i]) printf("%d\n",arr[i]); } }

陇西县17054789950: C语言中,对于不知道长度的数组怎样输入... -
司马建美心: 1、一维数组的定义、引用和初始化:定义一维数组的一般形式:类型名 数组名[常量表达式]. 2、一维数组程序举例:冒泡法. 3、得到结果进行输出. 4、二维数组常称为矩阵.把二维数组写成行列的排列形式,可以形象的理解二维数组的逻辑结构. 5、字符数组的定义,引用和初始化:C语言中没有字符串类型,字符串是存放在字符型数组中的. 6、字符数组综合举例.输出一个菱形.

陇西县17054789950: C语言比较两个数的大小,能运行,但不管输入什么数字,总是输出第一个大 -
司马建美心: 请将max函数的申明放在main函数之前,不要放在main函数里面

陇西县17054789950: c++怎样输入不定长的数组 -
司马建美心: new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)new int(100);//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址new char[10];//开辟一个存放字符数组(包括10...

陇西县17054789950: C语言 有一个长度为10的数组,所有的元素都为1,输入一个不超过0的正整数,要求将第一个元素到以 -
司马建美心: 你给我说一个不超过0的正整数.我就能把这程序给你写出来. 如果是不超过10,程序是这样的: # include <stdio.h>int main(void) {int i[10];int j;int k;for (j=0; j<10; j++){i[j] = 1;}printf("输入一个不超过10的正整数:");scanf("%d", &j);for(k=0; k<j; k++){i[k] = 0;}for(k=0; k<10; k++){printf("%5d",i[k]);}return 0; }

陇西县17054789950: C语言中如何控制未知长度的数组的输入 -
司马建美心: 你是想说在不知道数组长度的情况下输入,要防止输入越界是吧,你可以使用length=sizeof(a)/n来知道数组大小,如果是char型n=1;int型 n=4 ;short型 n=2 以此类推等等

陇西县17054789950: c 语言 数组 长度不定怎么办 -
司马建美心: 假设数组存的是double类型的变量; double * p = (double *)malloc(sizeof(double)*a.length) 如果定义的是int型数组比如 int a[10]; 他的长度就更简单了,n = sizeof(a)/sizeof(int) 假设数组存的是int型,那么 先申请10个元素; int* a = (int*)malloc(...

陇西县17054789950: c语言 不定长数组 -
司马建美心: 数组本身就是静态连续分配的,其有数据类型,也就是说是固定长度的,不定义就默认,你写的就是char 型的,长度为256; 动态数组就借助于指针了,char *c = (char*)malloc(sizeof(char) * strlen);strlen是所定义的数组的维数,这样在定义后,在栈内分配,不用了一定要free(c),不然,系统一直占用!希望可以帮到你,如果满意请采纳!

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