首页技术c语言sign函数怎么用?c语言∧什么意思

c语言sign函数怎么用?c语言∧什么意思

编程之家2026-07-04661次浏览

大家好,今天来为大家解答c语言sign函数怎么用这个问题的一些问题点,包括c语言∧什么意思也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

c语言sign函数怎么用?c语言∧什么意思

c语言中的e怎么使用

函数名:ecvt

功能:把一个浮点数转换为字符串。

用法:charecvt(doublevalue,intndigit,int*decpt,int*sign);

函数名:ellipse

功能:画一椭圆

用法:voidfarellipse(intx,inty,intstangle,intendangle,

c语言sign函数怎么用?c语言∧什么意思

函数名:enable

功能:开放硬件中断

用法:voidenable(void);

函数名:eof

功能:检测文件结束

用法:inteof(int*handle);

c语言sign函数怎么用?c语言∧什么意思

函数名:exec...

功能:装入并运行其它程序的函数。

用法:intexecl(char*pathname,char*arg0,arg1,...,argn,NULL);

C语言中的e是什么意思?

printf的运行结果(“%。F”,2e3)是:2000printf(”%。F”,2e-3)为:0.002000,即2e3为2乘以10的立方幂,2e-3为2乘以10的-立方幂,e为科学计数法输出的两倍数据。

其中%L是双精度,E是科学计数,即指数形式。

例如:

doublex=10;

printf(%L”,x);//输出10.00000

printf(%Le”,x);//输出1.00000e01

c语言中le什么意思?

前两个是e格式字符,以指数形式输出实数。1.%e:不要指定输出数据的宽度和数字部分的小数位数。一些C编译器系统自动指定数字部分的小数点是6,指数部分是5(例如e002),其中“e”是1,指数符号是1,指数是3,指数部分的总数是5。该值以标准化索引的形式输出。例如:printf(%e”,123.456)输出如下:1.234560e002(共13列,有些系统规定不同)2.%m.ne输出m列数据,其中有N个小数位。如果值的长度小于m,则左端将填充一个空格。最后两个是s格式字符,用于输出字符串。%m、NSoutput占用m列,但在字符串的左端仅占用n个字符。n个字符输出在m列的右侧,左边是空格。

c语言中%e是如何输出的?

如果它们都用作索引,则它们是相同的。如果它们是变量,它们就不同了。

指数表示有多少个点。1用e连接左右数字。2在E.3的左右两边必须有数字。e的右边必须是整数

用c语言编写24点代码分析

#include<stdio.h>

double fun(double a1,double a2,int b)//用于尝试着计算的函数,b为运算控制

{

switch(b)

{

case 0:return(a1+a2);

case 1:return(a1-a2);

case 2:return(a1*a2);

case 3:return(a1/a2);

}

}

void main()

{

int i,j,k,l,n,m,r,save[4];

double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;

char sign[5]="+-*/";//打印时候用的符号,需要和fun函数里的顺序保持一致

printf("input 4 numbers:");

for(i=0;i<4;i++)

{

scanf("%lf",num+i);//输入数据

save[i]=num[i];//保存原始数据

}

//下面程序的思想,就是利用穷举(其实就是使用的排列组合方法)来计算可能的组合。

//先把输入的4个数进行排列(前4个for语句就这个用途)

//再依次插入三个运算符(后3个for语句就这个用途)

//事实上,从这里看,这个程序是不怎样的。七层循环嵌套,这是编程的大忌。一般循环嵌套最好不要超过两层。

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(j!=i)

{

for(k=0;k<4;k++)

if(k!=i&&k!=j)

{

for(l=0;l<4;l++)

if(l!=i&&l!=j&&l!=k)

{

for(n=0;n<4;n++)

for(m=0;m<4;m++)

for(r=0;r<4;r++)

{

tem1=fun(num[i],num[j],n);

tem2=fun(tem1,num[k],m);

tem3=fun(tem2,num[l],r);

//以下五种处理方法,涵盖了有可能的全部运算顺序

//这也是本程序最精妙的地方。

if(tem3==24.0)//如果直接算得了24,说明次序不变,直接输出就是

printf("{(%d%c%d)%c%d}%c%d=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

else if(tem3==-24.0)//如果算得的是负的,说明需要颠倒第二次运算(第三次运算不可能是加减)

printf("{%d%c(%d%c%d)}%c%d=24\n",save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);

else if(tem3==1.0/24.0)//如果是倒数,说明需要颠倒最后一次运算(第三次运算同样不可能是加减)

printf("%d%c{(%d%c%d)%c%d}=24\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);

else if(tem3==-1.0/24.0)//如果是负倒数,则说明第二次和第三次运算都要颠倒(第三次运算同样不可能是加或减)

printf("%d%c{%d%c(%d%c%d)}=24\n",save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);

else

{//处理()*/+/-()的情况

tem1=fun(num[i],num[j],n);

tem2=fun(num[k],num[l],r);

tem3=fun(tem1,tem2,m);

if(tem3==24.0)

printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

}

}

}

}

}

}

//后面我再研究了下,发现"第三次不可能是加减法"这种思想是错误的,而程序作者在设计的时候,确实是这么认为的,所以,这个程序是有问题的.

//但程序里的主体思想没有问题,如果需要修改这个错误,程序需要在运算顺序判断上下功夫.结果只能取==24的情况.

c语言怎么写插入音乐的程序

实训项目三乐谱播放程序设计

2009-03-19 21:25

一、实训目的

1、用C语言开发音乐程序,写自己喜欢或创作的音乐,使在没有乐器的情况下听到自己创作的音乐。

2、巩固文件读取和数组的有关知识。

3、学习使用PC机扬声器的两个控制函数。

二、功能要求

自己创作乐曲,将其转换为计算机程序能够识别的电子文本格式,利用PC机扬声器的功能播放该乐曲。

三、编程参考

1、发声原理

编写音乐程序时,首先需要制作被演奏音乐的乐谱文件。制作乐谱文件可用不同的符号标记,只要所编制的程序易于识别即可。

下面是编制乐谱文件的一种规则:最高音在每个音的前面加“*”:高音,在每个音的前面加“h”;中音,在每个音的前面加“m”;低音,在每个音的前面加“l”。

“*”,“h”,“m”,“l”与其控制的音符构成音高,决定发声频率。音高的后面是音长,可用整数或小数输入,以控制延时,但中间必须用空格分开。乐谱文件的最前端是一个整数,表示音长基数,一般为300的倍数。乐谱文件的最末端是乐谱文件结束符“##”,以表示乐谱文件结束。

每个音的音长=音长基数*节拍数,其中,音长基数是乐谱文件的第一个字符,如上面乐谱文件为3600,每个音的音频可用一模拟频率值输入。下面是中央C及其前后4个8度中各个音符的频率值

低8度 1 2 3 4 5 6 7

131 147 165 176 196 220 247

中央C 1 2 3 4 5 6 7

262 296 329.7 349.2 392 440 493.9

高8度 1 2 3 4 5 6 7

523.3 587.3 659.3 698.5 784.0 880 987.8

2、PC机扬声器的两个控制函数

sound()以指定频率打开PC机的扬声器,频率以赫兹为单位。

nosound()关闭扬声器。

3、乐谱实例

巴赫的《小步舞曲》:

600 h2 4 m5 1 m6 1 m7 1 h1 1 h2 4 m5 4 m5 4 h3 4 h1 1 h2 1 h3 1 h4 1 h5 4 m5 4 m5 4 h1 4 h2 1 h1 1 m7 1 m6 1 m7 4 h1 1 m7 1 m6 1 m5 1 m4 4 m5 1 m6 1 m7 1 m5 1 m6 6 l2 1 m1 1 l7 1 l6 1 h2 4 m5 1 m6 1 m7 1 h1 1 h2 4 m5 4 m5 4 h3 4 h1 1 h2 1 h3 1 h4 1 h5 4 m5 4 m5 4 h1 4 h2 1 h1 1 m7 1 m6 1 m7 4 h1 1 m7 1 m6 1 m5 1 m6 4 m7 1 m6 1 m5 1 m4 1 m5 10##

四、拓展训练

1、制作选曲菜单,使其可以播放多首乐曲;

2、修改某些参数,改变乐曲播放速度。

源程序

#include<stdio.h>

#include<stdlib.h>

#include<dos.h>

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

{ FILE*fp;

int rate;

char sound_high[3];

int sound_long;

register int i=0,j;

int sign=0;

float str[200][2];

if(argc!=2)/*命令行参数个数不正确*/

{ printf("Parameters Errors!\n");

exit(1);

} if((fp=fopen(argv[1],"r"))==NULL)/*文件打开失败*/

{ printf("Open file music.doc Errors!\n");

exit(1);

} fscanf(fp,"%d",&rate);/*读取音长基数的值*/

while(!feof(fp)&&!sign)/*文件没有结束并且数据还是乐谱*/

{ fscanf(fp,"%s%d",sound_high,&sound_long);/*得到音频,音长的数值*/

str[i][1]=rate*sound_long;/*音长=音长基数*节拍数*/

switch(sound_high[0])

{ case'*':/*最高音*/

switch(sound_high[1])/*确定发声频率*/

{ case'1':

str[i++][0]=1046.5;

break;

case'2':

str[i++][0]=1174.7;

break;

case'3':

str[i++][0]=1318.5;

break;

case'4':

str[i++][0]=1396.9;

break;

case'5':

str[i++][0]=1568;

break;

case'6':

str[i++][0]=1760;

break;

case'7':

str[i++][0]=1975.5;

break;

default:

printf("\nErrors in music.doc\n");

exit(1);

}

break;

case'h':/*高音*/

switch(sound_high[1])

{ case'1':

str[i++][0]=523.3;

break;

case'2':

str[i++][0]=587.3;

break;

case'3':

str[i++][0]=659.3;

break;

case'4':

str[i++][0]=698.5;

break;

case'5':

str[i++][0]=784.0;

break;

case'6':

str[i++][0]=880;

break;

case'7':

str[i++][0]=987.8;

break;

default:

printf("\nErrors in music.doc\n");

exit(1);

}

break;

case'm':/*中音*/

switch(sound_high[1])

{ case'1':

str[i++][0]=262;

break;

case'2':

str[i++][0]=296;

break;

case'3':

str[i++][0]=329.6;

break;

case'4':

str[i++][0]=349.2;

break;

case'5':

str[i++][0]=392;

break;

case'6':

str[i++][0]=440;

break;

case'7':

str[i++][0]=493.9;

break;

default:

printf("\nErrors in music.doc\n");

exit(1);

}

break;

case'l':/*低音*/

switch(sound_high[1])

{ case'1':

str[i++][0]=131;

break;

case'2':

str[i++][0]=147;

break;

case'3':

str[i++][0]=165;

break;

case'4':

str[i++][0]=176;

break;

case'5':

str[i++][0]=196;

break;

case'6':

str[i++][0]=220;

break;

case'7':

str[i++][0]=247;

break;

default:

printf("\nErrors in music.doc\n");

exit(1);

}

break;

case'#':

if(sound_high[1]=='#')sign=1;

break;

default:

printf("\nErrors in music.doc\n");

exit(1);

}}

for(j=0;j<=i-1;j++)

{ sound(str[j][0]);/*按频率发出歌曲的音调*/

delay(str[j][1]);

} nosound();/*关闭扬声器*/

}

文章到此结束,如果本次分享的c语言sign函数怎么用和c语言∧什么意思的问题解决了您的问题,那么我们由衷的感到高兴!

织梦换模板,免费模板access自学教程?access2010自学教程