c语言函数的编程项目,c语言函数编写程序

C语言函数的编程

#include stdio.h

成都创新互联公司主营碌曲网站建设的网络公司,主营网站建设方案,成都app开发,碌曲h5微信小程序开发搭建,碌曲网站营销推广欢迎碌曲等地区企业咨询

#include stdlib.h

void Maxnum(int []);

float Avenum(int []);

void Ordernum(int []);

void main(){

int a[10];

int i;

printf("输入十个数字:\n?");

for (i=0;i=9;i++){

scanf("%d",a[i]);

if (i!=9)

printf("?");

}

Maxnum(a);

printf("平均值为:%.3f\n",Avenum(a));

Ordernum(a);

system("pause");

}

void Maxnum(int b[]){

int temp1=0,temp2=b[0],m;

for (m=0;m=9;m++){

if (b[m]temp1)

temp1=b[m];

if(b[m]temp2)

temp2=b[m];

}

printf("最大值:%d\n最小值:%d\n",temp1,temp2);

}

float Avenum( int b[]){

int n,sum=0;

for (n=0;n=9;n++){

sum+=b[n];

}

return (float)sum/10;

}

void Ordernum(int b[]){

int i,j,k,temp;

for (i=1;i=10;i++)

for (j=0;j=8;j++)

if (b[j]b[j+1]){

temp=b[j];

b[j]=b[j+1];

b[j+1]=temp;

}

printf("排序:\n");

for (k=0;k=9;k++)

printf("%d ",b[k]);

printf("\n");

}

好像你提过这个问题,我还是继续回答。

急!!!怎么用C语言编写程序,用函数完成:计算从1开始到n的自然数的和???

C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,计算和的方法为:

1、新建一个求1到100自然数之和项目。

2、添加一个cpp文件。

3、包含需要用到的头文件。

4、输入main函数。

5、定义两个变量,分别是:a和sum。

6、使用while语句计算1到100之间所有自然数之和。

7、运行程序,打印出结果。

注意事项:

C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

C语言函数编程

#include stdio.h

int is(int number);

int main(void)

{ int m,n,i;

printf("m(=1)=");

scanf("%d",m);

printf("n(=1000)=");

scanf("%d",n);

for(i=m;i=n;i++)

if(is(i)) printf("%-5d",i);

printf("\n");

}

int is(int number)

{ int s=0,x,a;

if(number==0) return 1;

for(x=number;x!=0;x/=10)

{ a=x%10;

s+=a*a*a;

}

return s==number;

}

《C语言程序设计》项目设计

这种东西很多了,随便搜索一大堆:这是个学生成绩的!

#include iostream.h

#include iomanip.h

#include fstream

#include vector

#include malloc.h

#include stdlib.h

#include string

#include process.h

#include stdio.h

//#define NULL 0

int const Q=20;

#define LEN sizeof(struct student)

using namespace std;

int n=0; //定义一个全局变量统计学生人数

//——---------定义一个学生考试信息的结构体

struct student

{

char name[Q]; //用来存放姓名的

char sex[Q]; //用来存放性别的

long int id; //用来存放准考证号的

int score[4]; //用来存放分数的

int total; //用来存放总分数的

struct student *next;

};

//student向量容器

vector student stu;

//--------------学生类

class Information

{

public:

Information() ; //构造函数.

~Information() ; //析构函数.

student *creat();//建立链表函数。

void output(student *head);

int count(student *head);//定义函数count()统计考生总数

student *insert(student*head);//指针函数*insert()用来添加考生信息.

student *cancel(student *head,long int num);//指针函数*cancel()用来删除考生信息.

student *find(student *head,long int num); //指针函数*find()用来查找考生信息.

void inorder(student *head);//定义inorder()函数将考生的总分从大到小排列并输出

void average( student *head);//求学生成绩的平均分的函数

void save(student *head);//保存函数

student *Read();//读取函数

private:

student *p1,*p2,*p3,*head,st;

};

Information::Information()

{

cout" ******************************************************************************\n";

cout" ------------------------欢迎您使用学生成绩管理系统------------------------\n";

cout" ******************************************************************************\n\n";

}

Information::~Information()

{

cout" ******************************************************************************\n";

cout" ------------------------谢谢您使用学生成绩管理系统------------------------\n";

cout" ******************************************************************************\n";

}

student *Information::creat(void)

{//定义一个指向struct student的结构体指针函数*creat()用来增加考生信息.

char ch[Q];n=0; //用来存放姓名的

p1=p2=(student *)malloc(LEN);//调用malloc()函数用来开辟一个新的存储单元

cout" -------------请建立学生考试信息表,在姓名处键以 ! 结束输入。--------------"endl;

cout" 姓名:";

cinch;

head=NULL; //给指针head赋初值

while (strcmp(ch,"!")!=0)

{//调用字符比较函数strcmp()用来判断是否继续输入

char str[10];

int flag=0;

p1=(student *)malloc(LEN);//调用malloc()函数用来开辟一个新的存储单元

strcpy(p1-name,ch); //将循环结构前面输入的姓名复制到结构体名为p1的数组name中

cout" 性别:";

cinp1-sex;

cout" 准考证号(8位):";

do{

cinstr;

if(atol(str)99999999 || atol(str)1)

cout"对不起,请正确输入!!!\n";

else

{

p1-id=atol(str); flag=1;

}

}while(flag==0);

flag=0;

cout" 计算机组成原理成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{

p1-score[0]=atoi(str); flag=1;

}

}while(flag==0);

flag=0;

cout" 概率统计成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[1]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout" 英语成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[2]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout" C++成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[3]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

p1-total=p1-score[0]+p1-score[1]+p1-score[2]+p1-score[3];//计算总分

if(n==0)head=p1;//如果是输入第一组学生考试信息就将指针p1赋给指针head

else p2-next=p1;//否则将p1赋给p2所指结构体的next指针

p2=p1;//将指针p1赋给指针p2

n++; //将n的值加1

cout" 姓名:";

cinch;//将输入的姓名存放到字符数组ch中

}

p2-next=NULL;//将p2所指结构体的next指针重新赋空值

return (head);//将输入的第一组学生考试信息返回

}

//---------------定义output()函数将考生的信息从头指针所指内容开始输出

void Information::output(student *head)

{

if(head==NULL) cout" 这是一个空表,请先输入考生成绩.\n";

else{

cout"-------------------------------------------------------------------------------\n";

cout" *学生考试成绩信息表*\n";

cout"-------------------------------------------------------------------------------\n";

cout"准考证号 姓 名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分\n";

cout"-------------------------------------------------------------------------------\n";

p1=head;//将头指针赋给p

do

{

coutsetw(8)p1-id

setw(9)p1-name

setw(8)p1-sex

setw(13)p1-score[0]

setw(16)p1-score[1]

setw(10)p1-score[2]

setw(9)p1-score[3]

setw(6)p1-total/4.0

setw(11)p1-totalendl;

cout"-------------------------------------------------------------------------------\n";

p1=p1-next;//将下一组考生信息的next指针赋给p

}while(p1!=NULL);//若指针p非空则继续,目的是把所有的考生信息都传给指针p然后输出.

}

}

//------------统计学生人数的函数

int Information::count(struct student *head)//定义函数count()统计考生总数

{

if(head==NULL)

return(0);//若指针head为空返回值为0

else return(1+count(head-next));//函数的递归调用

}

//-----------插入学生的成绩的函数

student *Information::insert( student *head)

//插入新结点定义一个指向struct student的结构体指针函数*insert()用来添加考生信息.

{

char str[10];

int flag=0;

cout"\t----------------请输入新增学生成绩信息----------------\n"endl;

p1=(student *)malloc(LEN); //使p1指向插入的新结点

cout" 姓名:";

cinp1-name; //将输入的姓名存放到结构体名为p1的数组name中

cout" 性别:";

cinp1-sex;

cout" 准考证号(8位):";

do{

cinstr;

if(atol(str)99999999 || atol(str)1)

cout"对不起,请请正确输入!!!\n";

else

{p1-id=atol(str); flag=1; }

}while(flag==0);

flag=0;

cout" 计算机组成原理成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[0]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout" 概率统计成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[1]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout" 英语成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[2]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout" C++成绩:";

do{

cinstr;

if(atoi(str)100 || atoi(str)1)

cout"对不起,请输入1-100之间的数字!!\n";

else

{ p1-score[3]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

p1-total=p1-score[0]+p1-score[1]+p1-score[2]+p1-score[3];//计算总分

p2=head;//将头指针赋给p2

if(head==NULL) //若没调用次函数以前的头指针head为空

{

head=p1;p1-next=NULL;

}//则将p1赋给头指针head并将p1所指结构体成员指针next赋空值

else

{

while((p1-idp2-id)(p2-next!=NULL))

{

p3=p2;//p3指向原p2指向的结点

p2=p2-next;

}//p2后移一个结点

if(p1-id=p2-id)

{

if(head==p2)

{

p1-next=head;

head=p1;

} //插入到第一个结点之前

else

{

p3-next=p1;

p1-next=p2;

} //插入到p3所指结点之后

}

else

{

p2-next=p1;

p1-next=NULL;

} //插入到尾结点之后

}

n++;//将学生人数加1

cout"\t你输入的学生信息已经成功插入"endl;

return (head);

}

//------------删除函数

student *Information::cancel(student *head,long int num)//定义一个指向struct student的结构体指针函数*delete()用来删除考生信息.

{

if(head==NULL)//若调用次函数以前的头指针head为空

{

return(head);

}

else

{

p1=head;//否则将头指针赋给p1

while(num!=p1-idp1-next!=NULL)//寻找要删除的结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空

{

p2=p1;

p1=p1-next;

}//p2指向原p1指向的结点p1后移一个结点

if(num==p1-id)//如果输入的学生准考证号是p1所指的学生准考证号//结点找到后删除

{

if(p1==head) head=p1-next;//如果head指针和p1指针相等则将下一个结点赋给指针head

else

p2-next=p1-next;//否则将p1所指结点赋给p2所指结点将要删除的学生信息跳过去

cout" 删除准考证号为"num"的学生\n";

n--;//将学生人数减1

}

return(head);//将头指针返回

}

}

//------------查找函数

student *Information::find(student *head,long int num)

//定义一个指向struct student的结构体指针函数*find()用来查找考生信息.

{

if(head==NULL)//若调用次函数以前的头指针head为空

{

cout" 这是一个空表,请先输入考生成绩.\n";

return(head);

}

else

{

p1=head;//否则将头指针赋给p1

while(num!=p1-idp1-next!=NULL)

//寻找结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空

{

p1=p1-next;

}//p2指向原p1指向的结点p1后移一个结点

if(num==p1-id)//如果要查找的学生准考证号是p1所指的学生准考证号

{

cout"------------------------------------------------------------------------------\n";

cout"准考证号 姓名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分 \n";

cout"------------------------------------------------------------------------------\n";

coutsetw(8)p1-id

setw(9)p1-name

setw(8)p1-sex

setw(13)p1-score[0]

setw(16)p1-score[1]

setw(10)p1-score[2]

setw(9)p1-score[3]

setw(6)p1-total/4.0

setw(11)p1-totalendl;

cout"------------------------------------------------------------------------------\n";

}

else

cout" 没找到准考证号为"num"的学生.\n"; //结点没找到

return(head);

}

}

//------------定义inorder()函数将考生的总分从大到小排列并输出

void Information::inorder(student *head)

{

int i,k,m=0,j;

student *p[Q];//定义一个指向struct student的结构体指针数组p

if(head!=NULL)//如果头指针是空则继续

{ m=count(head);

cout"------------------------------------------------------------------------------\n";

cout"学生考试成绩统计表\n";

cout"------------------------------------------------------------------------------\n";

cout"准考证号 姓 名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分 名次\n";

cout"------------------------------------------------------------------------------\n";

p1=head;

for(k=0;km;k++)

{

p[k]=p1;

p1=p1-next;

}

for(k=0;km-1;k++) //选择排序法

for(j=k+1;jm;j++)

if(p[k]-totalp[j]-total)

{

p2=p[k];

p[k]=p[j];

p[j]=p2;

} //从大到小排列的指针

for(i=0;im;i++)

{

coutsetw(8)p1-id

setw(9)p1-name

setw(8)p1-sex

setw(13)p1-score[0]

setw(16)p1-score[1]

setw(10)p1-score[2]

setw(9)p1-score[3]

setw(6)p1-total/4.0

setw(11)p1-totalendl;

cout"------------------------------------------------------------------------------\n";

}

}

}

//------------求各科平均分成绩的函数

void Information::average(student *head)

{

int k,m;

float arg1=0,arg2=0,arg3=0,arg4=0;

if(head==NULL)//如果头指针是空则继续

{

cout" 这是一个空表,请先输入考生成绩.\n";

}

else

{

m=count(head);

p1=head;

for(k=0;km;k++)

{

arg1+=p1-score[0];

arg2+=p1-score[1];

arg3+=p1-score[2];

arg4+=p1-score[3];

p1=p1-next;

}

arg1/=m;arg2/=m;arg3/=m;arg4/=m;

cout"全班单科成绩平均分\n";

cout"------------------------------------------------------------------------------\n";

cout" 计算机组成原理平均分:"setw(7)arg1

" 概率统计平均分:"setw(7)arg2

" 英语平均分:"setw(7)arg3

" C++平均分:"setw(7)arg4endl;

cout"------------------------------------------------------------------------------\n";

}

}

//-------------------保存函数.

void Information::save(student *head)

{

ofstream out("data.txt",ios::out);

outcount(head)endl;

while(head!=NULL)

{ outhead-name"\t"

head-id"\t""\t"

head-sex"\t"

head-score[0]"\t"

head-score[1]"\t"

head-score[2]"\t"

head-score[3]"\t"

head-totalendl;

head=head-next;

}

}

//———————————读取函数的实现

student *Information::Read()

{ int i=0;

p1=p2=( student *)malloc(LEN);

head=NULL;

ifstream in("data.txt",ios::out);

ini;

if(i==0){cout" data.txt 文件中的数据为空,请先输入数据。"endl; return 0;}

else {

cout" …………………………………………………………………………………………"endl;

for(;i0;i--)

{ p1=(student *)malloc(LEN);

cinst.namest.idst.sex

st.score[0]st.score[1]st.score[2]st.score[3]

st.total;

strcpy(p1-name,st.name);

p1-id=st.id;

strcpy(p1-sex,st.sex);

p1-score[0]=st.score[0];

p1-score[1]=st.score[1];

p1-score[2]=st.score[2];

p1-score[3]=st.score[3];

p1-total=st.total;

if(n==0)head=p1;//如果是输入第一组学生考试信息就将指针p1赋给指针head

else p2-next=p1;//否则将p1赋给p2所指结构体的next指针

p2=p1;//将指针p1赋给指针p2

n++; //将n的值加1

//显示读入数据

cout" "p1-name"\t"

p1-id"\t""\t"

p1-sex"\t"

p1-score[0]"\t"

p1-score[1]"\t"

p1-score[2]"\t"

p1-score[3]"\t"

p1-totalendl;

cout" …………………………………………………………………………………………"endl;

//

}

cout" 数据已经成功读取完毕。"endl;

p2-next=NULL;

return (head);

}

}

//------------------------------主函数.

int main(void)

{

Information person;

student *head=NULL;

char str[10];

int flag=0;

int choice;

long int i;

head=person.Read();

do{

cout"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓";

cout"┃ 学生成绩管理系统主菜单界面 ┃";

cout"┃ 读取数据请输入数字零 ┃";

cout"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫";

cout"┃ ①.输入学生成绩 ┃";

cout"┃ ②.显示学生成绩 ┃";

cout"┃ ③.排序统计成绩 ┃";

cout"┃ ④.查找学生成绩 ┃";

cout"┃ ⑤.增加学生成绩 ┃";

cout"┃ ⑥.删除学生成绩 ┃";

cout"┃ ⑦.保存退出系统 ┃";

cout"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛";

cout"请输入您的选择(1--7):( )\b\b";

cinstr;

if(atoi(str)7 || atoi(str)1)

cout"对不起,请输入1-7这几个数字!!\n";

else

{

choice=atoi(str);

switch(choice)

{

case 1:

head=person.creat();

break;

case 2:

person.output(head);

break;

case 3:

person.inorder(head);

person.average(head);

cout" 参加考试的学生人数为:"person.count(head)"人\n";

break;

case 4:

cout" 请输入要查找的准考证号(8位):";

do{

cinstr;

if(atol(str)99999999 || atol(str)1)

cout"对不起,请输入正确输入!!!\n";

else

{i=atol(str); flag=1; }

}while(flag==0);

flag=0;

person.find(head,i);

break;

case 5:

head=person.insert(head);

person.output(head);

break;

case 6:

cout" 请输入要删除的准考证号(8位):";

do{

cinstr;

if(atol(str)99999999 || atol(str)1)

cout"对不起,请输入正确输入!!!h\n";

else

{i=atol(str); flag=1; }

}while(flag==0);

flag=0;

head=person.cancel(head,i);

person.output(head);

break;

case 7:

person.save(head);

cout"文件已保存!可以安全退出!!!"endl;

break;

default :cout" 对不起,您的输入有误,请重新输入。\n";

break;

}

}

}while(choice!=7);

return 0;

}


当前名称:c语言函数的编程项目,c语言函数编写程序
转载注明:http://azwzsj.com/article/hdjicd.html