用C语言编写要求如下程序
解决时间 2021-04-27 20:34
- 提问者网友:那叫心脏的地方装的都是你
- 2021-04-27 14:59
1。求一元二次方程的根,用循环语句实现可重复输入系数a,b,c的值
2,统计全班学生成绩,输入一学生的两课分数,计算输出每个学生的总分和平均分,此外如果平均分大于等于85为优秀,60-85为通过,统计成绩优秀和及格的学生
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-04-27 16:24
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, d;
double x1, x2;
printf( "Input (a b c)three numbers:\n" );
printf( "No number out:\n" );
while ( scanf( "%lf%lf%lf", &a, &b, &c ) ) {
d = b*b - 4*a*c;
if ( d >= 0 ) {
x1 = ( -b + sqrt( d ) ) / (2*a);
x2 = ( -b - sqrt( d ) ) / (2*a);
printf( "x1=%.3f\tx2=%.3f\n", x1, x2 );
} else {
printf( "error\n");
}
}
}
英语表达不好,将就下
全部回答
- 1楼网友:像个废品
- 2021-04-27 19:10
#include<stdio.h>
int main()
{
float x, y;
float sum;
float avg;
while(scanf("%f%f", &x, &y) != EOF)
{
sum = x + y;
avg = sum /2;
printf("总分:%f\n", sum);
printf("平均分:%f\n", avg);
if(avg >= 85)
{
printf("优秀\n");
}
else if(avg >= 60 && avg < 85)
{
printf("通过\n");
}
else
{
printf("不及格\n");
}
}
return 0;
}
- 2楼网友:轻雾山林
- 2021-04-27 18:47
第一题:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, d;
double x1, x2;
printf( "请输入一元二次方程的三个系数(a b c)\n" );
printf( "输入非数字字符退出程序:\n" );
while ( scanf( "%lf%lf%lf", &a, &b, &c ) ) {
d = b*b - 4*a*c;
if ( d >= 0 ) {
x1 = ( -b + sqrt( d ) ) / (2*a);
x2 = ( -b - sqrt( d ) ) / (2*a);
printf( "x1=%.3f\tx2=%.3f\n", x1, x2 );
} else {
x1 = -b / (2*a);
x2 = sqrt( -d ) / (2*a);
printf( "x1=%.2f+%.3fi\tx2=%.2f-%.3fi\n", x1, x2, x1, x2 );
}
}
}
运行截图:
第二题:
#include <stdio.h>
#include <math.h>
double a[100][2];
int main()
{
int i, n, good = 0, pass = 0;
double s1, s2;
printf( "请输入你要输入的记录数量:" );
scanf( "%d", &n );
for ( i = 0; i < n; ++i ) {
printf( "请输入第 %d 个学成的两科成绩:", i+1 );
scanf( "%lf%lf", &s1, &s2 );
a[i][0] = s1 + s2;
a[i][1] = a[i][0] / 2;
if ( a[i][1] >= 85 )
++good;
else if ( 60 <= a[i][1] && a[i][1] < 85 )
++pass;
}
printf( "\n\n\t\t总分\t\t平均分\n\n" );
for ( i = 0; i < n; ++i ) {
printf( "学生%d:\t\t%.2f\t\t%.2f\n", i+1, a[i][0], a[i][1] );
}
printf( "\n优秀者:%d 人\n", good );
printf( "及格者:%d 人\n\n", pass );
}
运行截图:
- 3楼网友:山河有幸埋战骨
- 2021-04-27 17:08
#include<stdio.h>
typedef struct student
{
float score[2];
float avg;
}stu;
main()
{
stu *p;
int i,j=0,x=0,y=0,z=0;
char a;
for( i=1 ; ; i++ )
{
printf("请输入学生两门课成绩:\n");
scanf("%f%f",&p->score[0],&p->score[1]);
p->avg=(p->score[0]+p->score[1])/2;
if(p->avg>=85)
{ printf("\n\t该生优秀!\n");
x++;
}else if(p->avg>=60&&p->avg<85)
{ printf("\n\t通过!\n");
y++;
}else
{ printf("\n\t该生不及格!\n");
z++;
}
printf("是否继续录入学生信息<y/n>:");
fflush(stdin); //清空缓冲内存区
scanf("%c",&a);
fflush(stdin);
if(a=='n') break;
}
printf("一共录入%d人信息\n优秀%d人\n通过%d人\n不及格%d人\n\n",i,x,y,z);
}
- 4楼网友:荒野風
- 2021-04-27 16:54
1)当a等于0时退出:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float a,b,c,i,root1,root2;
printf("请输入三个系数:(输入格式:a,b,c)\n");
scanf("%f,%f,%f",&a,&b,&c);
getchar();
while(a!=0)
{
i=b*b-4*a*c;
if(i>0)
{
root1=(-b+sqrt(i))/(2*a);
root2=(-b-sqrt(i))/(2*a);
printf("方程有两不等实根:\n");
printf("%f,%f\n",root1,root2);
}
else if(i==0)
{
root1=root2=-b/(2*a);
printf("方程有两相等实根:\n");
printf("%f,%f\n",root1,root2);
}
else
{
root1=(-b)/(2*a);
root2=sqrt(-i)/(2*a);
printf("方程有两复根:\n");
printf("%f+%fi,%f-%fi\n",root1,root2,root1,root2);
}
printf("请输入三个系数:(输入格式:a,b,c)\n");
scanf("%f,%f,%f",&a,&b,&c);
getchar();
}
return 0;
}
结果:
我要举报
大家都在看
推荐资讯