c语言动态数组赋值
㈠ 用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("
");
return 0;
}
(1)c语言动态数组赋值扩展阅读:
for循环
for循环是编程语言中一种开界的循环语句,而循环语句[1]由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
C语言中的for循环形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。
㈡ c语言数组的赋值
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外, 还可采用初始化赋值和动态赋值的方法。
C语言对数组的初始化赋值还有以下几点规定:
1) 可以只给部分元素赋初值。
当{ }中值的个数少于元素个数时,只 给前面部分元素赋值。
例如:
int a[10]={0,1,2,3,4};
表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2) 只能给元素逐个赋值,不能给数组整体赋值。
例如给十个元素全部赋1值,只能写为:
int a[10]={1,1,1,1,1,1,1,1,1,1};
而不能写为:
int a[10]=1;
多维数组也是一样
给数组赋值的方法除了用初始化赋值外,用赋值语句对数组元素只能逐个赋值
㈢ C语言 数组 定义时赋值
c语言不允许在定义的时候直接用变量赋值。但用v[0]=x,v[1]=y...这样的方法是可以的。
至于数组长度,C语言不支持动态定义大小,如int
n=5;int
a[n];这样也是错的。所以数组一般要定义成足够大。
㈣ C语言数组动态赋值
输入整型数组,这样循环是可以的。
scanf输入格式没有指定,默认是空格分割。
也就是说,你要么输入一个数就回车,再输第二个。
要么连续输入多个数,用空格分割。
看看,你输入格式对不对。
㈤ C语言如何定义动态数组
intmain(void)
{
int*number,n,m,i;
printf("thetotalnumbersis:");
scanf("%d",&n);
printf("backm:");
scanf("%d",&m);
number=(int*)malloc(n*sizeof(int));
printf("input%dintegers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&number[i]);
}
(5)c语言动态数组赋值扩展阅读
动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小。
动态数组的内存空间是从堆(heap)上分配(即动态分配)的。是通过执行代码而为其分配存储空间。当程序执行到这些语句时,才为其分配。程序员自己负责释放内存。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
㈥ C语言中的二维数组的赋值,输入输出怎么用
代码,实现先输入二维数组的行数m和列数n,并再输入m*n个整型数据存到动态二维数组中。最后输出所有二维数组的元素值。
int main()
{
int**p;//定义二维指针。
int m,n;//行数和列数。
int i,j;
scanf("%d%d",&m,&n);//输入行数和列数。
if(m<=0||n<=0)return-1;//行数或列数非法。
p=(int**)malloc(sizeof(int*)*m);//申请一组一维指针空间。
for(i=0;i<m;i++)
p<i>=(int*)malloc(sizeof(int)*n);//对于每个一维指针,申请一行数据的空间。
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&p<i>[j]);//输入第i行第j列的数据。其中&p<i>[j]也可以写作p<i>+j或者是*(p+i)+j.功能相同。
printf("输入的数组为%d行%d列: ",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)//这个循环可以输出一行元素。
printf("%d",p<i>[j]);//输出i行j列的元素。
printf(" ");//每行输入结束加换行符。
}
//释放内存
for(i=0;i<m;i++)
free(p<i>);
free(p);
return 0;
}
(6)c语言动态数组赋值扩展阅读:
函数:free
功能:与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free(p)这句语句,如果p是NULL指针,那么free对p无论操作多少次都不会出问题。如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误。)
用法;void free(void*ptr);
程序例:
C/C++代码如下:
#include<string.h>
#include<stdio.h>
#include<alloc.h>//or#include<malloc.h>
int main(void)
{
char*str;
/*allocate memory for string*/
str=(char*)malloc(10);
/*"Hello"to string*/
strcpy(str,"Hello");
/*display string*/
printf("String is%s ",str);
/*free memory*/
free(str);
str=NULL;
return 0;
}
㈦ C语言的动态赋值
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[10];
inti,j;
intn;
srand(time(NULL));
for(i=0;i<10;i++)
{
n=rand();
for(j=i-1;j>=0;j++)
if(a[j]>n)a[j+1]=a[j];
elsebreak;
a[j+1]=n;
}
scanf("%d",&n);
if(n==0)
{
for(i=0;i<10;i++)
printf("%d",a[i]);
}
elseif(n==1)
{
for(i=9;i>=0;i--)
printf("%d",a[i]);
}
}