扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include "stdio.h"
创新互联建站主要从事网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务腾冲,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
#include "math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{
float a,b,c,d,e,f,k,n,m;
printf("请输入X1的值:");
scanf("%f",a);
printf("请输入Y1的值:");
scanf("%f",b);
printf("请输入X2的值:");
scanf("%f",c);
printf("请输入Y2的值:");
scanf("%f",d);
printf("请输入X3的值:");
scanf("%f",e);
printf("请输入Y3的值:");
scanf("%f",f);
k=(a*c*f*(c-a)+b*c*e*(e-c)+a*d*e*(a+e))/(e*e*(c-a)+a*a*(e-c)+c*c*(a-e));
n=(a*a*(k-d) -c*c*(k-d))/(c*c*a-a*a*c);
m=(b-n*a-k)/(a*a);
{
printf("k=%f\n",k);
printf("n=%f\n",n);
printf("m=%f\n",m);
printf("该二次函数解析式为:y=%fx²+%fx+%f\n",k,n,m);
}
}
原因是 scanf("%d",a);语句中的格式串中的符号,除了格式字符以外的字符都必须输入。 所以,当执行scanf("%d\n",a);语句时,必须输入一个整数和两个回车符(第一个是格式串中的,第二个是表示输入结束的)该语句才执行结束。
1)输入单个字符:getc,getchar,getch(不会在屏幕显示输入字符)
2) 输出单个字符:putc
3) 输入一串字符(可以有空格,Tab 等): gets
4) 输出一串字符(可以有空格,Tab 等): puts
5) 标准输入:scanf(可以输入数字,字符,字符串等。输入以空白字符分割)
6) 标准输出:printf(可以格式花输出数字,字符,字符串等。)
文件输入输出:
在上面的输入输出函数(除了 getchar,getch)前面加上 f,比如fgetc,fputc,fscanf,fprintf,就是文件输入输出函数了。
一:格式输出函数printf()
1、调用形式一般为:printf("格式化控制字符串",输出表列);
2、格式化控制字符串用于指定输出格式,它有三种形式:
1、格式说明符:规定了相应输出表列内容的输出格式,以%打头,如%d、%o等
2、转义字符:用来输出转义字符所代表的控制代码或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原样输出的字符。
3、输出表列为若干需要输出的数据项,它与格式说明符在数量和类型上一一对应;
4、格式字符m指定输出数据所占宽度,n对实数表示输出n位小数,对字符串表示截取的字符个数,+表示右对齐,通常省略。
—表示左对齐,l用于长整型数据,可加在d、o、x、u前,更多格式说明符及其组合形式如下所示:
格式字符
数据对象
输出形式
数据输出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十进制整数
1、无m按实际位数输出
2、有m输出m位;超过m位,按实际位数输出,不足补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-mo
八进制整数
%(+)-mx
十六进制整数
%(+)-mu
无符号整数
%(+)-mld
long
unsigned
long
十进制整数
%(+)-mlo
八进制整数
%(+)-mlx
十六进制整数
%(+)-mlu
无符号整数
%(+)-m.nf
float
double
十进制小数
%(+)-m.ne
十进制指数
%(+)-g
自动选用%f和%e中较短的输出宽度输出单、双精度浮点数
%(+)-mc
char
int
short
单个字符
1、无m输出单个字符
2、有m输出m位,补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-m.ns
字符串
一串字符
1.无m、n按实际字符串输出全部字符
2、有m、n仅输出前n个字符,补空格
3.有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
二:格式输入函数scanf()
1、
调用格式一般为:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函数含义相似,所不同的是它是对输入格式进行控制;
3、地址表列是有若干等待输入的数据所对应的内存单元地址组成,由逗号隔开,一般形式为a,a为变量;
4、地址表列在数量和类型上和格式化控制字符串中的格式说明符一一对应;
5、格式字符h表示输入短型数据,可用在d、o、x前面,m指定输入数据所占宽度,
*表示对应的数据项读入后不赋给相应的变量,更多格式说明符及其组合如下
格式字符
数据对象
输入形式
数据输入方法
%md
int
short
unsigned
int
unsigned
short
十进制整数
1、无m按实际位数输入
2、有m输入m位,不足m则跟回车键
%mo
八进制整数
%mx
十六进制整数
%mld
long
unsigned
long
十进制整数
%mlo
八进制整数
%mlx
十六进制整数
%mlf
float
double
十进制整数
%mle
%mc
char
单个字符
1、无m取单个字符
2、有m输入m位,仅取第一个字符
%ms
字符串
一串字符
1、无m取回车或空格前若干字符
2、有m仅取前m字符
在C语言中,输入使用的是scanf函数,scanf函数的格式为scanf(格式控制,地址列表),如scanf("%d"a)。
输出使用的是printf()函数,printf函数的格式为printf(格式控制,输出表列),如printf("%d\n",a)。在输出时可以在"%"和字母之间插进数字表示最大场宽。可以根据需要输出数字的位数来决定“%”前的数值。
如:%3d表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为7,小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
扩展资料
C语言输入输出时的规则:
一、格式说明符个数与输入数据个数不相等的情况:
当我们输入数据时,只要没有按回车键,所输入的数据都还存放在缓冲区,并没有存入变量中。按【Enter】键后,scanf()函数才会从缓冲区中取走数据。缓冲区是一个先进先出的队列,即取走数据的时候,遵循先输入的数据先取走的原则。
scanf函数的格式说明符有几个就要取几次数据,只要碰到格式说明符就必须把数据取走,至于是不是要把取走的数据存放起来,就得看数据列表中的数据个数。没取完的数据继续留在缓冲区中。
二、宽度输出的情况:
1、在%和格式字符之间加入一个整数来控制输出数据所占宽度
2、在%和格式字符f之间加入一个“整数1. 整数2”来控制输出数据的格式。
整数1:整个输出数据占的总宽度
整数2:输出实数的小数部分的个数
注意:先用整数2处理小数部分,再用整数1处理整个数据,包括已处理好的小数部分
三、宽度输入的情况:
宽度输入指的是在%和格式说明符d之间加入一个整数。如:scanf("%2d", x);
注意:
1、%d与%1d是不同的,它们具有不同的含义。
2、 当宽度小于数据的实际宽度时,截取指定宽度的部分作为一个数进入缓冲区,再将剩余部分作为另一个数放入缓冲区。
参考资料来源:百度百科——scanf
百度百科——printf()
enter input 和冒号在这里就是文本内容 完全没有任何实际意义 就是你屏幕上输出的一段文字
\n是换行的意思 printf里面引号里的东西全是你希望在屏幕上打印出的文本内容
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流