#include stdio.h
创新互联主营新绛网站建设的网络公司,主营网站建设方案,成都app软件开发公司,新绛h5微信平台小程序开发搭建,新绛网站营销推广欢迎新绛等地区企业咨询
#include malloc.h
#include stdlib.h#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
//typedef struct
//{
// Elemtype *list;
// int size;
// int maxsize;
//}SqList;typedef struct List
{
ElemType *list;
int size;
int maxsize;
}List,*SqlList;typedef struct sNode
{
ElemType data;
struct sNode *next;
}sNode,*LinkList;int InitList_Sq(List L)
{
L.list=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.list)
exit(OVERFLOW);
L.size=0;
L.maxsize=LIST_INIT_SIZE;
return OK;
}int ListInsert_Sq(List L,int i,ElemType e)
{
ElemType *p,*q,*newbase;
if(i1||iL.size+1)
return ERROR;
if(L.size=L.maxsize)
{
newbase=(ElemType *)realloc(L.list,(L.maxsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)
exit(OVERFLOW);
L.list=newbase;
L.maxsize+=LISTINCREMENT;
}
q=(L.list[i-1]);
for(p=(L.list[L.size-1]);p=q;--p)
*(p+1)=*p;
*q=e;
++L.size;
return OK;
}int ListDelete_Sq(List L,int a,int b) /*删除*/
{
ElemType *x,*y;
int j=0;
while(jL.size)//ji-1
{
if(L.list[j]=aL.list[j]=b)
{
x=(L.list[j]);//要删除的数
y=L.list+L.size-1;
for(++x;x=y;++x)
*(x-1)=*x;
--L.size;
}
else
++j;
}
/*if(!p||ji-1)
return ERROR;*/ /*int i;
ElemType *p;
if(i1||iL.size)
return ERROR;
p=(L.list[i-1]);
e=*p;
q=L.list+L.size-1;
for(++p;p=q;++p)
*(p-1)=*p;
--L.size;*/
return OK;
}
int ListDestory_Sq(List L)
{
free(L.list);
L.size=0;
return OK;
}int InitList_Link(LinkList L,int n)
{
int i;
LinkList p;
L=(LinkList)malloc(sizeof(sNode));
L-next=NULL;
/*for(i=n;i0;--i)
p=(LinkList)malloc(sizeof(sNode));
scanf("%d",p-data);
p-next=L-next;
L-next=p;*/
return OK;
}int ListInsert_Link(LinkList L,int i,ElemType e)
{
LinkList p=L,s;
int j=0;
while(pji-1)
{
p=p-next;
++j;
}
if(!p||ji-1)
return ERROR;
s=(LinkList)malloc(sizeof(sNode));
s-data=e;
s-next=p-next;
p-next=s;
return OK;
}
int ListDelete_Link(LinkList L,int i,ElemType e)
{
LinkList p=L,q;
int j=0;
while(p-nextji-1)
{
p=p-next;
++j;
}
if(!(p-next)||ji-1)
return ERROR;
q=p-next;
p-next=q-next;
e=q-data;
free(q);
return OK;
}
int ListDestory_Link(LinkList L)
{
LinkList p,r=L;
p=L-next;//L为头结点
while(p)
{
r-next=p-next;
free(p);
p=r-next;
}
return OK;
}int CountEqualx(LinkList L,int x)
{
int sum=0;
LinkList p;
p=L-next;//L为头结点
while(p)
{
if(p-data==x)
sum++;
p=p-next;
}
return sum;
}int SelectMax(LinkList L)
{
int max;
LinkList p=L-next;
if(p)
{
//p=L-next;//L为头结点
max=p-data;
while(p)
{
if(p-datamax)
max=p-data;
p=p-next;
}
return max;
}
else
{
printf("\n链表为空!\n");
exit(1);
}
}int main()
{
int i,j,a,b,x;
List L;
LinkList Link,p;
ElemType e; //顺序表操作
InitList_Sq(L);
for(i=0;i10;i++)
ListInsert_Sq(L,1,i);//在第1个位置插入i
printf("\n顺序表删除前: ");
for(i=0;iL.size;i++)
printf("%d ",L.list[i]);
printf("\n输入a的值:\na=");
scanf("%d",a);
printf("\n输入b的值:\nb=");
scanf("%d",b);
ListDelete_Sq(L,a,b); //删除大于等于a 小于等于b的数
printf("\n顺序表删除后: ");
for(i=0;iL.size;i++)
printf("%d ",L.list[i]);
printf("\n"); //链表操作
InitList_Link(Link,10);
for(i=0;i10;i++)
ListInsert_Link(Link,1,i);//在第1个位置插入i
printf("\n链表最大元素为:%d\n",SelectMax(Link));
printf("\n输入x:");
scanf("%d",x);
printf("\n链表中元素等于x的值有%d个\n",CountEqualx(Link,x));
printf("\n链表删除前: ");
p=Link-next;//L为头结点
while(p)
{
printf("%d ",p-data);
p=p-next;
} printf("\n删除第几个元素:");
scanf("%d",x); ListDelete_Link(Link,x,e);
printf("\n链表删除后: ");
p=Link-next;//L为头结点
while(p)
{
printf("%d ",p-data);
p=p-next;
}
printf("\n链表删除的元素为: %d\n",e);
ListDestory_Sq(L);
ListDestory_Link(Link);
system("pause");
return 0;
}
float k,b,x,y;
printf("请输入k,b:");
scanf("%f%f",k,b);
printf("请输入x:");
scanf("%f",x);
y=k*x十b;
printf("y=%f\n",y);
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:int fun(){return 1;}。
3、编译器运行test.cpp文件,此时成功调用fun()函数输出了内容。
函数是用户与程序的接口,在定义一个函数前,首先要清楚以下三个问题。1) 函数的功能实现及算法选择。算法选择会在后续文章详细讲解,本节重点关注函数的功能实现。一般选取能体现函数功能的函数名,且见名知意,如求和函数的函数名可取为 add,求最大值的函数名可取为 max,排序函数可取名为 sort 等。2) 需要用户传给该函数哪些参数、什么类型,即函数参数。3) 函数执行完后返回给调用者的参数及类型,即函数返回值类型。 函教定义格式 函数定义的一般格式为: 返回类型 函数名 (类型参数1,类型参数2,…) {函数体 }也可以不含参数,不含参数时,参数表中可写关键字 void 或省略,为规范起见,教程中对没有参数的函数,参数表中统一写 void。例如: 类型 函数名 () {函数体 }等价于: 类型 函数名 (void) //建议的书写方式 {函数体 } 如果该函数没有返回类型,则为 void 类型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 类型外,在函数体中,均需要显式使用 return 语句返回对应的表达式的值。 函教返回值 函数的值是指调用函数结束时,执行函数体所得并返回给主调函数的值。 关于函数返回值说明如下。1) 带返回值的函数,其值一般使用 return 语句返回给调用者。其格式为: return 表达式;或者 return (表达式);例如: int add (int a, int b) {return (a + b); //return 后为表达式 } 函数可以含一个或多个 return 语句,但每次调用时只能执行其中一个 return 语句。例如,求整数绝对值的函数: int f (int n) //含多个return语句,但每次调用只执行一个 {if (n = 0)return n;elsereturn -n; }
#include stdio.h
#include stdlib.h // malloc
#define Max 100
typedef struct
{
int data[Max];
int len;
}Sqlist;
int cSqlist(Sqlist **L,int a[],int n)
{
int i=0;
*L=(Sqlist *)malloc(sizeof(Sqlist));
for(i=0;in;i++)
{
(*L)-data[i]=a[i];
}
(*L)-len=n;
return 1;
}
void display(Sqlist L)
{
int i;
for(i=0;L.leni;i++)
{
printf("%d - ",L.data[i]);
}
}
void main()
{
Sqlist *L; // Sqlist L; 这一句已经申请了空间,所以改成指针,在 cSqlist()里面申请空间
int a[5]={1,2,3,4,5};
int n=5;
cSqlist(L,a,n);//传入L的地址才能改变L的值
display(*L); //
}