这个程序计算整数的平均数而不打印小数。它将结果打印为一个整数:N.000000。为什么?
//Store name, roll no, marks of 4 students using structure
//and calculating average
struct student
{
char name[10];
int roll_no;
int marks;
};
void main()
{
struct student s1,s2,s3,s4;
float avg;
clrscr();
printf("\nEnter name, rollnumber and marks of student 1 : \n");
scanf("%s%d%d",&s1. name,&s1. roll_no,&s1. marks);
printf("\nEnter name, rollnumber and marks of student 2 : \n");
scanf("%s%d%d",&s2. name,&s2. roll_no,&s2. marks);
printf("\nEnter name, rollnumber and marks of student 3 : \n");
scanf("%s%d%d",&s3. name,&s3. roll_no,&s3. marks);
printf("\nEnter name, rollnumber and marks of student 4 : \n");
scanf("%s%d%d",&s4. name,&s4. roll_no,&s4. marks);
avg = (s1. marks + s2. marks + s3. marks + s4. marks) / 4;
printf("\nAverage : %f",avg);
getch();
}
最佳答案
int marks;
表示每个标记都是整数然后求和,这也是一个整数然后把它们除以4,这也是一个整数,所以这个操作将是一个整数除法-一个丢弃结果的小数部分的操作把它除以
4.0
就可以了。关于c - 我的C程序没有计算十进制值,而只是打印整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12302946/