A. 关于c语言求总分和平均数的问题
{
inti,j;
floatsum,average,x,y,z;
printf("请输入每个同学每门课程的成绩: ");
for(i=1;i<=5;i++)
{
scanf("%f%f%f",&x,&y,&z);
sum=x+y+z;
average=sum/3.0;//要除3.0才能得到正确答案
printf("第%d位同学的总分为:%f,平均分为:%f ",i,sum,average);
}
}
B. C语言中"\ooo"是什么意思
\ooo--> \000
转义字符 意义 ASCII码值(十进制)
/a 响铃(BEL) 007
/b 退格(BS) 008
/f 换页(FF) 012
/n 换行(LF) 010
/r 回车(CR) 013
/t 水平制表(HT) 009
/v 垂直制表(VT) 011
// 反斜杠 092
/? 问号字符 063
/' 单引号字符 039
/" 双引号字符 034
/0 空字符(NULL) 000
/ddd 任意字符 三位八进制
/xhh 任意字符 二位十六进制
C. C语言循环输入一个学生5门课程的成绩,计算所有大于60分课程成绩的平均分,为什么我的结果平均分永远为0
统计大于60分课程的总成绩和课程数即可求得平均分
没有看懂你的for循环意义何在
另外如果c和j 都是整型数,那么c/j 默认也为整型数,若不能除尽则会损失精度
所以求平均分d=c/j 时要先进行类型转换:d=(float)c/j; 或 d=1.0*c/j
修改后的代码如下:
#include <stdio.h>
int main() {
int a, b = 0, c = 0;
float d;
int i = 1, j = 0;
while (i <= 5) {
printf("请输入第%d门成绩: ", i);
scanf("%d", &a);
i++;
b += a; // 统计所有课程的总分
if (a > 60) {
c += a; // 统计大于60分课程的总分
j++; // 统计大于60分的课程数
}
}
d = (float)c / j; // 求平均分,注意类型转换
printf("该学生的总分为%d ", b);
printf("所有大于60分课程成绩的平均分为%.2f", d);
return 0;
}
符合题意,望采纳~
D. c语言数值常量表示方法问题
C语言中的数值常量可以简单的分为如下两种整型常量和浮点数常量:
一. 整型常量 如6,27,-299
在 C 语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。
(1)十进制整型常量
这种常量只能出现 0~9 的数字,且可带正、负号。例如:
0 1 364 28 -34
第 2 章 基本数据类型 •29•
(2)八进制整型常量
这种常量是以数字 0 开头的八进制数字串。其中数字为 0~7。例如:
0111(十进制 73) 011(十进制 9) 0123(十进制 83)
(3)十六进制整型常量
这种常量是以 0x或 0X开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~
F 中的数字或英文字母。例如:
0x11(十进制 17) 0Xa5(十进制 165) 0x5a(十进制 90)
二. 浮点型常量 如5.43,-2.3,5.67f
实型常量有两种表示形式:一种是十进制小数形式,另一种是指数形式。
(1)十进制小数形式
十进制小数形式为包含一个小数点的十进制数字串。
此类实型常量小数点前或后可以没有数字,但不能同时没有数字。例如:
3.14159, .89, 56.0, 78., -3.0, 0.0
(2)指数形式
指数形式的格式由两部分组成:十进制小数形式或十进制整型常量部分和指数部分。
其中指数部分是在 e 或 E(相当于数学中幂底数 10)后跟整数阶码(即可带符号的整数指
数)。例如:
1e15 //表示数值 1×10
15
0.35e+1 //表示数值 0.35×10
1
78e-1 //表示数值 78×10
-1
下面是不正确的实型常量。
e15 //缺少十进制小数部分
0.35e //缺少阶码
78e-1.2 //不是整数阶码
E. C语言中的问题
8进制即逢8进1,16进制即逢16进1
16进制是这样的,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
A代表10,其余的类推
所以16进制数6B转换为10进制就是6*16+11=107
假如8进制数73转换为10进制就是7*8+3=59
就好像十进制数123表示为1*100+2*10+3*1一样
8进制,16进制的联系是2进制,即转换都要先转换成2进制
8进制由3位2进制组成,16进制由4位2进制组成
对8进制来讲:000代表0 001代表1 010代表2 011代表3
100代表4 101代表5 110代表6 111代表7
对16进制来讲:0000代表0 0001代表1 0010代表2 0011代表3
0100代表4 0101代表5 0110代表6 0111代表7
1000代表8 1001代表9 1010代表A 1011代表B
1100代表C 1101代表D 1110代表E 1111代表F
所以8进制数73可以看成111 011
而16进制数6B可以看成0110 1011