malloc-动态一维数组输出问题

问题描述

动态一维数组输出问题

新手一枚,求前辈指教!

 /*
    malloc动态内存分配练习
    从键盘输入成绩并打印在屏幕上,人数未知
*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int num=0;
    printf("请输入学生人数:n");
    scanf("%d",&num);
    int *mark;
    mark = (int *)malloc(num * sizeof(int));
    if(mark==NULL)
    {
        puts("内存分配失败!");
    }
    else
    {
        int i;
        for(i=0;i<num;i++)
        {
            printf("请输入第%d个学生的成绩:",i+1);
            scanf("%d",mark+i);
        }
        for(i=0;i<num;i++);
        //当我将for语句中的在i括号里声明时,
        //上面的scanf语句没有报错而
        //下面的输出语句会报错 .                      为何?
        {
            printf("%3dn",mark[i]);
            //目前程序无法输出输入的成绩,           为何?
        }
        printf("n");
    }
    free(mark);
    mark=NULL;
    return 0;
}

解决方案

 for(i=0;i<num;i++); //多了一个分号?

解决方案二:

郁闷,还真是!谢啦!

解决方案三:

卡了一下,居然发出去三次!真是郁闷了

时间: 2024-10-26 12:22:09

malloc-动态一维数组输出问题的相关文章

android开发如何声明动态一维数组

问题描述 android开发如何声明动态一维数组 我是一个Android新手,我现在想读取一个文件,文件大小未知,我想用 byte[] buffer = new byte[3072]; temp_stream = new FileInputStream(img_name); temp_stream.read(buffer); buffer接收,如何声明一个动态byte[] buffer. 解决方案 Java获得文件大小的方法(通过FileInputStream) 根据指定文件创建FileInpu

asp-ASP中一维数组如何判断是否存在重复项呢

问题描述 ASP中一维数组如何判断是否存在重复项呢 请问一下,动态一维数组中如何判断数组中是否存在相同的值呢? 比如说动态数组A() A(1)="A" A(2)="B" A(3)="A" 动态数组B() B(1)=1 B(2)=2 B(3)=3 最后输出的是 A 4 B 2 就是A(1)+A(3) 相同的数组B()相加输出,不相同的直接输出B()对应的值 解决方案 a=split("A,B,A",",")

c++-C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中?

问题描述 C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中? //此程序是我自己编的,但是不能通过,请问这是怎么回事? #include using namespace std; int main() { int n,m,k,i,j,l; cin>>n>>m>>k; int X[][]={0}; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { X[i][j]=i*j; } int Y[]={0}; for(i=1;i

c++ 指针-C++中数组指针怎么输出每一个所谓的一维数组的头一个元素

问题描述 C++中数组指针怎么输出每一个所谓的一维数组的头一个元素 #includeusing namespace std;int main(){int a[3][4] = {{1357}{9111315}{17192122}};int (* p)[4];for(p = a; p < a + 3; p++){cout << ((p + 0)) << "" "";cout << *p <<endl;}cout &l

C++动态数组输出乱码的问题

问题描述 C++动态数组输出乱码的问题 为何输出成员brand是乱码"屯"? #include #include using namespace std; int main() { struct CandyBar { char brand[20]; float weight; int calorie; }; CandyBar *test=new CandyBar[3]; test[0].brand =="The First"; test[0].weight=5; t

初学者求教,如何测量动态分配的内存长度,以及如果用malloc创建的数组,怎样测量数组长度

问题描述 初学者求教,如何测量动态分配的内存长度,以及如果用malloc创建的数组,怎样测量数组长度 初学者求教,如何测量动态分配的内存长度,以及如果用malloc创建的数组,怎样测量数组长度 解决方案 楼主首先要明白一点就是数组是自定义类型.c/c++的三种自定义类型:1.指针:2.结构体/联合(包括位域):3.数组 既然你是动态分配的,那么sizeof如何能强大到侦探你的动态的情况呢?malloc是个函数,原型为extern void *malloc(unsigned int num_byt

abs-关于求一维数组里所有两元素之和的最小绝对值,求指点

问题描述 关于求一维数组里所有两元素之和的最小绝对值,求指点 题目详情给你一个数组A[n]请你计算出ans=min(|A[i]+A[j]|)(0<=ij例如:A={1, 4, -3},则:|A[0] + A[0]| = |1 + 1| = 2.|A[0] + A[1]| = |1 + 4| = 5.|A[0] + A[2]| = |1 + (-3)| = 2.|A[1] + A[1]| = |4 + 4| = 8.|A[1] + A[2]| = |4 + (-3)| = 1.|A[2] + A[

创建一维数组的注意事项

创建数组时没有给某个元素指定下标,php会自动用目前最大的那个下标值加1,做为该元素的下标 例: <?php$arr = array(5 => "www.bianceng.cn", 123, 50);echo $arr[5]; //输出www.bianceng.cnecho "<br />" . $arr[6]; //输出123?> 如果使用true,false,null作为键值,则true的下标为1,false的下标为0.使用null

详解C++中的一维数组和二维数组_C 语言

C++一维数组 定义一维数组 定义一维数组的一般格式为:     类型标识符  数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素. 关于一维数组的几点说明: 1) 数组名定名规则和变量名相同,遵循标识符定名规则. 2) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的: int a[10]; int a[2*5]; int a[n*2]; //假设前面已定义了n为常变量 3) 常量表达式的值表示元素的个数,即数组长度.例如,在"int