目录
1. 求一元二次方程ax2+bx+c=0的根,其中a,b,c由键盘输入。
2. 编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果保留两位小数。
4. 编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到大的顺序输出这三个字符的ASCII码。
转义序列、格式控制符查询表
先附上两个初心者必备表
C语言初心者习题
1. 求一元二次方程ax2+bx+c=0的根,其中a,b,c由键盘输入。
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c, d, x1, x2, p, q;
scanf("%lf,%lf,%lf", &a, &b, &c);
d = b * b - 4 * a * c;
p = -b / (2.0 * a);
q = sqrt(d) / (2.0 * a);
x1 = p + q;
x2 = p - q;
printf("x1=%7.2llf\nx2=%7.2lf\n", x1, x2);
return 0;
2. 编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果保留两位小数。
#include<stdio.h>
#include<math.h>
int main()
{
double r1=0, r2=0, chuan=0, bing=0;
scanf("%lf,%lf", &r1, &r2);
chuan = r1 + r2;
bing = 1 / ((1 / r1) + (1 / r2));
printf("串联:%7.2lf\n并联:%7.2lf\n", chuan,bing);
return 0;
}
3. 输入三角形的三边长,求三角形的面积。
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c,p,s;
scanf("%lf,%lf,%lf", &a, &b, &c);
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("s=%7.2llf\n", s);
return 0;
}
4. 编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到大的顺序输出这三个字符的ASCII码。
#include <stdio.h>
int main()
{
char ch1;
printf("please input char:");
scanf("%c", &ch1);
printf("前= %c , ASCLL= %d \n", ch1 - 1, ch1 - 1);
printf("本次输入 = %c , ASCLL= %d \n", ch1, ch1);
printf("后= %c , ASCLL= %d \n", ch1 + 1, ch1 + 1);
return 0;
}
scan函数报错问题
值得注意的是,visual studio 如果出现
错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. test_myfirstprogram
以下字样
原因:
scanf这个函数在多线程程序可能不安全
解决方法
1, 使用scanf_s代替scanf函数
(_s)代表(save)
2,单线程的简单代码可以通过更改预处理器定义来解决问题
根据报错提示在程序第一句写上:
#define _CRT_SECURE_NO_WARNINGS
或者更改预处理器
右键/选中+ALT+ENTER 进入程序的如图项目的属性界面
编辑预处理器定义
粘贴 _CRT_SECURE_NO_WARNINGS至预处理器定义
就可以正常使用scanf函数了
顺带一提scanf_s
(63条消息) C语言问题:0xC0000005: 写入位置 0xFFFFFFCC 时发生访问冲突。_qq_28069941的博客-CSDN博客_c语言写入位置时发生访问冲突