您的位置:

使用标准c语言,标准C语言

本文目录一览:

用标准C语言实现Hanoi塔问题

#includestdio.h

int count=0;

void move(char x,int n,char z);

void hanoi(int n ,char x,char y,char z)

{

if(n==1)

move(x,1,z);

else

{

hanoi(n-1,x,z,y);

move(x,n,z);

hanoi(n-1,y,x,z);

}

}

void move(char x,int n,char z)

{

printf(" %2i.Move disk %i from %c to %c\n",++count,n,x,z);}

void main()

{

int n;

char x,y,z;

x='A';

y='B';

z='C';

scanf("%d",n);

hanoi(n,x,y,z);

printf("\n");

}

用标准C语言编写学生信息管理系统

把我之前做的给你吧,差不多的

#includestdio.h

#includestdlib.h

#includestring.h

#include"conio.h"

#define N 50 //定义符号常量,代表学生人数最大值

int count=0; //全局变量,用于记录数组的当前位置

struct student //定义结构体类型,代表学生信息*/

{

char name[9];

char number[10];

float math;

float english;

float physics;

float computer;

};

void input(struct student *arr); //函数声明,输入学生信息*/

void sort(struct student *arr); //函数声明,按总分排序*/

void find(struct student *arr); //函数声明,查找某位学生信息*/

void main()

{

char selmenu; //定义局部变量,用于记录用户选择的功能编号*/

struct student stud[N]; //定义结构体数组,用于记录学生信息*/

do //利用循环显示界面*/

{

system("cls"); //清屏函数*/

printf("\n\n");

printf("欢迎使用学生管理系统\n");

printf("------------------------\n");

printf("学生成绩管理系统 \n\n");

printf("1.输入学生信息 \n");

printf("2.按总分进行排榜 \n");

printf("3.查找相应的学生信息 \n");

printf("4.退出学生成绩管理系统 \n\n");

printf("请输入功能选择编号:");

fflush(stdin); //清空输入缓冲区

scanf("%c",selmenu); //接受用户选择的功能编号

switch(selmenu) //输入不同功能编号调用相应函数来完成功能

{

case'1':

input(stud); //调用输入学生信息函数,参数为学生信息数组名

break;

case'2':

sort(stud); //调用按总分排榜函数,参数是数组名

break;

case'3':

find(stud); //调用按学号和姓名查找学生信息函数

break;

}

}while(selmenu!='4'); //判断是否退出

printf("*^-^* 谢谢使用 *^-^*\n"); //输出告别词

printf(" 任务完成 ");

getch();

}

void input(struct student *arr) //定义输入学生信息函数

{

char ch; //用于接收用户指令

do //利用循环,由用户控制输入学生成绩

{

system("cls");

printf("\n输入第%d个学生的信息:\n输入学生姓名:",count+1);

scanf("%s",arr[count].name);

printf("\n输入学生学号:");

scanf("%s",arr[count].number);

printf("\n输入数学成绩:");

scanf("%f",arr[count].math);

printf("\n输入英语成绩:");

scanf("%f",arr[count].english);

printf("\n输入物理成绩:");

scanf("%f",arr[count].physics);

printf("\n输入计算机成绩:");

scanf("%f",arr[count].computer);

count++; //记录当前输入的学生资料的个数

printf("\n是否继续输入(y/n)\n");

fflush(stdin); //清空输入缓冲区

ch=getchar();

}while(ch=='y'||ch=='Y'); //判断用户指令,是否继续输入

}

void sort(struct student *arr) //定义按总分排榜函数

{

int i,j,k; //定义循环变量i,j,最小数位置k

struct student t; //定义交换临时变量

if(count==0) //判断数组中学生成绩是否存在

printf("无学生成绩,请先录入学生信息\n");

else

{

for(i=0;icount-1;i++) //用选择法按总分对学生成绩排序

{

k=i;

for(j=i+1;jcount;j++) //k为arr[i]到arr[count-1]中最小数的位置

if((arr[k].math+arr[k].english+arr[k].physics+arr[k].computer)(arr[j].math+arr[j].english+arr[j].physics+arr[j].computer))

k=j;

if(k!=i) //如果最小数不是比较数列中第一个,对调

{

t=arr[k];

arr[k]=arr[i];

arr[i]=t;

}

}

printf("\n总分排榜版:\n\n");

printf("\t姓名\t学号\t数学\t英语\t物理\t计算机\t总分\t名次\n");

for(j=0;jcount;j++) //输出按总分排榜后的学生成绩和名次

printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n",

arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english,j+1);

}

printf("\n回车键返回主程序\n");

fflush(stdin);

getchar();

}

void find(struct student *arr) //定义查找函数

{

int j;

char name[9]; //用于接收用户输入的学生姓名

char number[10]; //用于接收用户输入的学生学号

system("cls"); //清屏函数

printf("\n请输入要查找的学生资料:\n");

printf("\n学生姓名:");

scanf("%s",name);

printf("\n学生学号:");

scanf("%s",number);

for(j=0;jcount;j++) //使用字符串比较函数查找兵书出符合条件的学生成绩

{

if((strcmp(name,arr[j].name)==0)(strcmp(number,arr[j].number)==0))

{

printf("\n\t姓名\t学号\t数学\t英语\t物理\t计算机\t总分\n");

printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\n",

arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english);

break;

}

}

if(j=count) //如果没找到,会从循环条件退出

printf("\n未找到该学生纪录,请核对后重新查找!\n");

fflush(stdin); //清空输入缓冲区

printf("\n回车键返回\n");

getchar();

}

C51编程时,可以使用标准C语言的所有数据类型。为什么“编程时常用unsigned c

这体现了嵌农和码农的价值观区别。

嵌农会精心计算一个变量的范围,而码农很少这么做,因为码农默认的数值类型一般是int32,可以满足日常范围需求,甚至像Python那样的语言自带大整数特性,根本不用考虑范围。然而嵌农呢,尤其是你说的c51,是个Intel祖传8位机,本来ram就很少,当然要精心考虑变量的大小了。像int32这样的东西太奢侈了,只能精打细算,根据现实情况精选一个范围合适的类型。鉴于大部分情况并不需要负数,所以用unsigned类型能提高0以上的数值范围。另外需要指出的是很多c51编译器里int类型是16位的。所以嵌农的悲伤就在这里,别人已经开始写算法了,你还在研究这个变量存不存得下的问题。

C51语言,由C语言继承而来的单片机编程语言。

和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。

怎样用标准C语言播放音乐?

用C语言播放音乐,一般需要额外的库或者调用系统的API函数。

以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下:

#includestdio.h

#includewindows.h

#includemmsystem.h

#pragma comment(lib, "WINMM.LIB")

int main()

{

PlaySound(TEXT("1.wav"),0,SND_FILENAME); //1.wav是要播放的音乐文件

return 0;

}

如果想播放mp3音乐可以使用如下代码。

注意:生成程序后,请在cmd中执行此程序,不要在vc/vs的IDE中运行。

#include windows.h

#include mmsystem.h

#include stdio.h

#pragma comment(lib, "Winmm.lib")

int main(int argc, char *argv[])

{

     //绝对地址形式

    TCHAR fileName[]="ganlusi.mp3";

    TCHAR shortName[MAX_PATH];

    GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR));

    TCHAR cmd[MAX_PATH+10];

    wsprintf(cmd,"play %s",shortName);

    mciSendString(cmd,NULL, 0, NULL);

    Sleep(5 * 60 * 1000); //这里是防止一播放就结束做的延迟

      return 0;

}

使用标准C语言,将字符数组s2中的全部字符复制到在字符数组s1中。

设计思路:

1、定义2个大小相等的字符数组s1[N]和s2[N]

2、提示输入字符数组s2,输入字符数组s2

3、统计字符串s2的长度k

4、将字符数组s2的下标为0到k的元素赋值给s1

5、输出字符数组s1

程序:

#includestdio.h

#define N 100

void main()

{

char s1[N],s2[N];

int i,k=0;

printf("输入字符数组s2\n");

scanf("%s",s2);

for(i=0;s2[i]!='\0';i++)k++;

for(i=0;i=k;i++)s1[i]=s2[i];

printf("%s\n",s1);

}

结果:

输入字符数组s2

engsing

engsing

Press any key to continue