精华内容
下载资源
问答
  • C语言 不定长数组输入 很简短。。。。。。。。。。。。。。。。。。。。
  • 写程序的时候经常要定义这样一个数组,要前面程序运行后才能知道数组的大小,然而C语言不支持直接定义不定长数组的定义,但是我们可以通过动态数组实现一个不定长度的数组。 一维数组: #include #include<stdlib>/...
  • // 注意哈,gets_s函数弄的那个字符是char类型的数组(vs2019中使用gets_s来代替gets) for (int i = 0; a[i]!='\0'; i++) { sum = i + 1; } printf("输入的字符串长度为: %d", sum); return 0;
    #include<stdio.h>
    
    int main() {
    	int sum=0;
    	char a[100];
    	printf("请您输入一行字符: ");
    	gets_s(a);					// 注意哈,gets_s函数弄的那个字符是char类型的数组(vs2019中使用gets_s来代替gets)
    	for (int i = 0; a[i]!='\0'; i++)
    	{
    		sum = i + 1;
    	}
    	printf("输入的字符串长度为: %d", sum);
    	return 0;
    }
    
    展开全文
  • 每次玩C语言的时候,看到...今天我想说下关于很多人会问的 不定长的数据输入数组的情况,网上搜了很多,很多人的答案我也运行过,都不正确,跟同学讨论了会,得出一个反正我在VS上运行通过的版本。 比如:1 2 3 4

    每次玩C语言的时候,看到scanf都他妈的一肚子火,我觉得当初设计scanf的大牛脑子都不正常,搞得我们这些菜鸟晕头转向,仔细研究你会发现scanf的规则之多让人蛋疼,稍不注意你就得不到你想要的输入结果。

    今天我想说下关于很多人会问的 不定长的数据输入到数组的情况,网上搜了很多,很多人的答案我也运行过,都不正确,跟同学讨论了会,得出一个反正我在VS上运行通过的版本。

    比如:1 2 3 4 5 6 ......10 11 的一串整型数据,没有固定长度,要输入到一个数组中,以回车键结束 该如何去做?

     

    方法一:见代码

    #include<stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void main(void) 
    { 
    
    	int i =0;
    	char c;
    	int count = 3;
    	int *a = (int*)malloc(sizeof(int));
    	int n;
    
    	 while( scanf("%d",&n)){//读取成功返回读取的个数,返回1 ,读取失败返回 0
    		a[i] = n;
    		i++;
    		a = (int *)realloc(a,(i*sizeof(int)+sizeof(int)));//已有空间大小为i ,追加 1个,总大小为i+1
    		
    		if((c = getchar()) == '\n')//getchar()每次可以读取到空格,当输入完毕后,将读取回车键
    			break;
    	 
    	}
    
    	for(int j = 0; j<i;j++)
    		printf("%d ",a[j]);
    
    	system("pause");
    		return; 
    }
    
    
    
    
    上面这种方法很方便,但是当数据很多的时候效率很低,因为realloc追加空间是重新找一块大的内存,再将原先的数据复制到新内存中,这样每来一个数据就要复制一次,效率很低;可以用如下的改进版:

    
    
    
    
    
    

    #include<stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void main(void) 
    { 
    
    	int i =0;
    	char c;
    	int count = 10;
    	int *a = (int*)malloc(10*sizeof(int));//初始分配10个大小的空间
    	int n;
    
    		  while( scanf("%d",&n)){
    		  a[i] = n;
    		  i++;
    		  if((c = getchar()) == '\n')
    			break;;
    		  if(i>=count)
    			{
    				a = (int *)realloc(a,(i+10)*sizeof(int));//当空间不够,继续追加
    				count += 10;
    		   }
    	  }
    
    	for(int j = 0; j<i;j++)
    		printf("%d ",a[j]);
    
    	system("pause");
    		return; 
    } 


    
    
     


    这种方法,复制的次数就会减少,只是会浪费一些空间。

    展开全文
  • C/C++ 输入问题

    2020-02-09 12:11:52
    C语言 不定长数组输入 int data[30005]; int t1; int n = 0; while(0 < scanf("%d,",&t1)){ data[n] = t1; n++; } C++ 不定长数组输入 int data[100]; int n = 0; while(cin >> data[n]){ n++; } ...

    C语言 不定长数组输入

    int data[30005];
    int t1;
    int n = 0;
    while(0 < scanf("%d",&t1)){
       data[n] = t1;
       n++;
    }
    
    • 如果是以逗号分割的数据需要在scanf("%d,",&t1) %d后面加上一个

    C++ 不定长数组输入

    int data[100];
    int n = 0;
    while(cin >> data[n]){
        n++;
    }
    

    C++ 有空格字符串输入

    getline(cin,t)
    
    展开全文
  • 理解:如何读取连续输入不定长数组; 问题: 输入若干商品 x1,x2,x3,x4… 输入最大金额R; 任选三件商品,求最大花费金额。 若不满足,返回-1; 输入样例 1,2,3,4 6 输出 6 输入样例 1,2,3,4 -1 输出 return ...

    OJ在线编程常见输入输出练习场

    理解:如何读取连续输入的不定长数组;

    问题:
    输入若干商品 x1,x2,x3,x4…
    输入最大金额R;
    任选三件商品,求最大花费金额。
    若不满足,返回-1;

    输入样例 1,2,3,4
    6
    输出 6

    输入样例 1,2,3,4
    -1
    输出 return -1;

    #include <stdio.h>
    int main(){
        char ch;
        int count=0;                  //遍历指针
        int M[100]={0};               //存储数组
        int sum = 0;                  //局部计算和
        int max_spend = 0;            //最大花费
    
        do{
            scanf("%d",&M[count++]);
        }while((ch=getchar())!= '\n');// 这里用来判断是否输入了回车
        printf("%d\n",count);
    
        int R;                        //资金总额
        scanf("%d",&R);
                                      //枚举
        for(int i = 0; i < count; i++)
            for(int j=i+1; j < count; j++)
                for(int k=j+1; k < count; k++){
                    sum = M[i]+M[j]+M[k];
                    printf("sum = %d M[%d] + M[%d] + M[%d]\n",sum,i,j,k);//打印枚举结果
                    if(sum <= R){
                        max_spend = sum > max_spend? sum : max_spend;
                    }
                }
        if(max_spend == 0){
           return -1;
        }
        printf("%d",max_spend);
        return 0;
    
    }
    
    
    may be we willyes
    展开全文
  • 函数指针数组的妙用

    2012-06-04 10:26:07
    转:函数指针数组的妙用(I)  (2007-05-01 14:31:11) 转载▼   分类: C语言  笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer 和 ...
  • C语言问题锦集

    2017-04-20 11:26:02
    一、定义一个不定长二维数组 int row=0; //行数 int col=0; //列数 int i; int ** arr=NULL; //下面假设存储的数据类型为int printf(“请输入二维数组的行数和列数:”); scanf("%...
  • 实际上,如果让用户输入字符串的长度,再输入字符串,就没有什么意义了,所以才想到找个办法根据用户输入的字符串长度创建数组。时间所限,还没有好好研究,现在贴下有关的链接: ...
  •  以上各类函数不仅数量多,而且有的还需要硬件知识才会使用,因此要想全部掌握则需要一个较的学习过程。 应首先掌握一些最基本、 最常用的函数,再逐步深入。由于篇幅关系,本书只介绍了很少一部分库函数, 其余...
  • 2)输入菜品个数不定,使用数组的概念,加入for循环遍历数组读取输入的值。 变量规定: 1)菜品的数量用int n; 2)所有菜品的价格为float sum; 3)所需要付的总价格(包含配送费)为float totalsum; 效果...
  • 题目:编写程序Sum,用户按以下格式输入: sum <空格>数据1<空格>数据2<空格>…<回车> 程序输出求和结果,数据都是整数,个数不定 #include <stdio.h> int main(int argc,char*argv...
  • 近日总结 整理一下之前存的一些网页 ...3、C语言格式化输入不定长数组 4、C 函数 | 菜鸟教程 5、哲♂学家的小黑屋 6、神奇的魔术牌 | 哲♂学家的小黑屋 7、[C/C++] 快速幂讲解 - Strawberry丶 - 博客园 8...
  • 文章目录第五章 C++与STL入门5.1 从C到C++5.2 STL初步5.2.1 STL之 排序与检索:5.2.2 STL之 不定长数组:vector5.2.3 STL之 集合:set5.2.4 STL之 映射:map5.2.5 STL之 栈、队列、优先队列5.2.6 测试STL:随机数...
  • 5.2.2 不定长数组:vector 109 5.2.3 集合:set 112 5.2.4 映射:map 113 5.2.5 栈、队列与优先队列 115 5.2.6 测试STL 120 5.3 应用:大整数类 123 5.3.1 大整数类BigInteger 124 5.3.2 四则运算 125 5.3.3 比较...
  • 7.6用(bx+idata)的方式进行数组的 处理 7.7SI和DI 7.8(bx+si)和(bx+di) 7.9(bx+si+idata)和(bx+di+idata) 7.10不同的寻址方式的灵活应用 实验6实践课程中的程序 第8章数据处理的两个基本问题 8.1bx、si、...
  • 5.2.8 接受数量不定的函数实参 229 5.3 从函数返回值 231 5.3.1 返回指针 231 5.3.2 返回引用 233 5.3.3 函数中的静态变量 236 5.4 递归函数调用 238 5.5 C++/CLI编程 240 5.5.1 接受数量可变实参的函数 241...
  •  ' 输入的字符串转换为字节数组,并计算哈希。  Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))  ' 创建一个新的StringBuilder收集的字节,并创建一个字符串。  Dim sBuilder ...
  • 经过不断的试验和修订(或称“反复”,这是在Java程序设计中非常有用的一项技术),最后成功地在一门课程中集成了从我的教学经验中总结出来的所有东西——我在很一段时间里都在使用。其中由一系列离散的、易于消化...
  • Thinking.In.Java

    2012-03-21 22:35:53
    经过不断的试验和修订(或称“反复”,这是在Java程序设计中非常有用的一项技术),最后成功地在一门课程中集成了从我的教学经验中总结出来的所有东西――我在很一段时间里都在使用。其中由一系列离散的、易于消化...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

c语言输入不定长数组

c语言 订阅