❶ c语言字符数组如何初始化
C语言允许用字符串的方式对数组作初始化赋值。例如:
static char c[]={'c',' ','p','r','o','g','r','a','m'}; 可写为:
static char c[]={"C program"}; 或去掉{}写为:
static char c[]="C program";
当对全体元素赋初值时也可以省去长度说明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。
(1)一段c语言初始化代码扩展阅读:
数组的使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
网络-数组
❷ 用c语言写一个程序,初始化一个线性表。跪求
#include <stdio.h>
#include <malloc.h>
# define MaxSize 50
typedef struct{
ElemType data[MaxSize];//存放顺序表元素
int length;//存放顺序表长度
}SqList;//顺序表类型定义
//建立顺序表
void CreateList(SqList *&L,ElemType a[],int n){
int i;
for(i=0;i<n;i++){
L->data [i]=a[i];
}
L->length =n;
}
//顺序表基本运算算法
//初始化线性表InitList(L)
void InitList(SqList *&L){
L=(SqList *)malloc(sizeof(SqList));//分配存放线性表的空间
L->length =0;
}//本算法的时间复杂度为O(1)
//销毁线性表
void DestroyList(SqList *&L){
free(L);
}//本算法的时间复杂度为O(1)
//判断线性表是否为空
int ListEmpty(SqList *L){
return (L->length ==0);
}//本算法的时间复杂度为O(1)
//求线性表的长度
int ListLength(SqList *L){
return (L->length);
}//本算法的时间复杂度为O(1)
//输出线性表
void DispList(SqList *L)
{
int i;
if(ListEmpty(L)) return;
for(i=0;i<L->length;i++){
printf(nn,L->data[i]);
}
printf("\n");
}//本算法的时间复杂度为O(L->length)
//求线性表中某个数据的元素值
int GetElem(SqList *L,int i,ElemType &e)
{
if(i<1||i>L->length)
return 0;
e=L->data[i-1];//这儿体现了数组的优点,可以直接通过下标访问
return 1;
}//本算法的时间复杂度为O(1)
//按元素的值查找
int LocateElem(SqList *L,ElemType e){
int i=0;
while(i<L->length && L->data[i]!=e)i++;
if(i>=L->length)
return 0;
else
return i+1;
}//本算法中基本运算为while循环中的i++语句,故时间复杂度为O(L->length)
//插入数据元素
int ListInsert(SqList *&L,int i,ElemType e){
int j;
if(i<1 || i>L->length+1)
return 0;//参数错误,返回0
i--;//将顺序逻辑位序变为物理位序
for(j=L->length;j>i;j--){
L->data[j]=L->data[j-1];//将data[i]及后面的元素后移一个位置
}
L->data[i]=e;//插入元素e
L->length++;//增加长度
return 1;
}//本算法的平均时间复杂度为O(n)
//删除数据元素
int ListDelete(SqList *&L,int i,ElemType &e){
int j;
if(i<1 || i>L->length)
return 0;
i--;//将顺序逻辑位序变为物理位序
e=L->data[i];
for(j=i;j<L->length-1;j++){
L->data[j]=L->data[j+1];//将data[i]之后的元素前移一个位置,这就是数组中的删除思想
}
L->length--;
return 1;
}//本算法的平均时间复杂度为O(n)
❸ 用c语言编写一个程序实现顺序栈的初始化,出栈和入栈。急需,谢谢
#defineSTACK_SIZE100
#definePUSH_POP_SUCCESS1
#definePUSH_POP_ERROR0
struct_stackbuf{
int_collection[STACK_SIZE];
int_top;
};
typedefstruct_stackbufS_STACK;
typedefunsignedintu_int_f;
//入栈
u_int_fpush(S_STACK*stack,intd){
if(stack->_top>=STACK_SIZE)returnPUSH_POP_ERROR;
stack->_collection[stack->_top++]=d;
returnPUSH_POP_SUCCESS;
}
//出栈
u_int_fpop(S_STACK*stack,int*e){
if(!stack->_top)returnPUSH_POP_ERROR;
*e=stack->_collection[--(stack->_top)];
returnPUSH_POP_SUCCESS;
}
intmain(){
S_STACKstack={{0},0};
push(&stack,1);
push(&stack,2);
push(&stack,3);
intgv=0;
pop(&stack,&gv);
printf("%d ",gv);
system("PAUSE");
return0;
}
❹ C语言编写单片机89C51初始化程序
方法类似,补写程序如下:
#include
#define
uint
unsigned
int
#define
uchar
unsigned
char
sbit
led=p0^0;
sbit
led1=p0^1;
void
delay1ms
(uint
z)
{
uint
x,y;
for
(x=z;x>0;x--)
for
(y=110;y>0;y--);
}
void
exter()
interrupt
2
{
delay1ms(600);
led=0;
delay1ms(200);
led=1;
}
void
exter0()
interrupt
0
{
delay1ms(600);
led1=1;
delay1ms(200);
led1=0;
}
main()
{
ea=1;
//开总中断
ex1=1;
//开外部中断1
ex0=1;
//开外部中断0
it1=0;
//外部中断边沿触发,下降沿触发
it0=0;
//外部中断0边沿触发,下降沿触发
}