十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、鱼台ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的鱼台网站制作公司
void main(void)
{
int x,y;
printf("Please enter the x:");
scanf("%d",x);
if(x=-2)
y=x-2;
else if(x=2)
y=2*x-1;
else
y=(x+2)*(x+2);
printf("The y is %d\n",y);
scanf("%d",x);//只是为了停住看清结果,没有任何意义
}
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。
这是简单的循环,对于正负号的问题可以记录一个变量来维护该次循环中是正号还是负号,每次循环结束都将这个变量记录的符号反转。以下是样例程序:
int foo(int n)
{
bool sign = true; //true表示正号,false表示负号
int sum = 0;
for (int i = 1; i = n; ++i) {
if (sign) sum += i;
else sum -= i;
sign = !sign;
}
return sum;
}
当然,n非常大时计算可能需要很久。这时可以考虑利用数学方法简化表达式。当n是奇数时,原式=1+(3-2)+...+(n-(n-1))=1+(n-1)/2=(n+1)/2,当n是偶数时,原式=(1-2)+...+(n-1-n)=-n/2。因此函数可以简单地写成:
int foo(int n)
{
return n % 2 == 0 ? - n / 2 : (n + 1) / 2;
}
C语言函数在函数过程编写前定义,比如编写一个名称为fx的函数,那么:
#include"stdio.h"
#......
void fx(变量类型定义,用,分开);
main()
{
。。。。。。
fx(形参);
。。。。。。
}
void fx(变量类型定义,用,分开)
{。。。。。。}
形参是一个形式,相当于书架,你把实参(书)赋值给(放到)形参(书架对应位置上),并通过形参进行编辑(理解为在书架上拿书操作);最终书架的东西不能动,你看完从哪里拿的放到哪,但是你拿下来过的东西的方式是你自己决定的
c语言的开方函数是:sqrt()函数。
1、功能:计算一个非负实数的平方根。
2、函数原型:在VC6.0中的math.h头文件的函数原型为double sqrt(double)。
3、说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。
4、头文件:math
double sqrt(double x)
参数解释:
x 为要计算平方根的值。
如果 x 0,将会导致 domain error 错误,并把全局变量 errno 的值为设置为 EDOM。
返回 x 平方根。
注意,使用 GCC 编译时请加入-lm。
例:
扩展资料:
sqrt()函数的注意事项:
1、sqrt()函数,里面的形参是double型的,所以调用的时候,要强制转换成double型。
2、sqrt()函数都最后返回值是double型,而n是int型,所以要强制转换n=(int)sqrt((double)x)。
3、到底要不要进行强制转换,需要看这个函数的形参和返回值是什么类型,如果没有进行强制转换,有的编译器会警告,有的会报错,有的就直接通过。
参考资料:
百度百科--平方根计算
c++中为什么需要main函数的解释如下:
1、这个是由系统的c++运行时决定的,编译器生成目标系统上的可执行文件时,操作系统启动的入口就是c++运行时(c++
runtime
system),
然后运行时完成初始化之后会调用main函数。
2、main函数定义了函数调用的入口,具体用法如下:
(1)main()函数及其参数
c++标准允许主函数main()有或没有参数列表。
您能在主函数main()中使用一个或更多的参数。
如下是一些惯例:
int
main(int
argc,
char
*argv[])
第一个参数argc,指明有多少个参数将被传递给主函数main(),真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。在这句法上面,
记住,
argc代表参数的数量,
main()函数本身是在索引0为的第一参数。
(2)所以,
argc总是至少为1
。它的总数是从argv列阵的元素数目。
这意味着,
argv[0]的值是至关重要的。
如果用户在控制台环境中程序名称后键入含参数的指令,
那么随后的参数将传递给argv[1]
。
例如,
如果程序名称为main,并且已经事先编译好了,这时如果用户键入:d:/myprograms/aconsoleapp/main
68
值68将会传递给argv[1]
当然取决于你怎么样来编写程序了,也许你的用户将可以输入如下指令:
d:/myprograms/aconsoleapp/main
68
1250.50
因为参数argv是一些字符串,将这些字符串转换为你需要的值就是我们程序员的任务了。