当前位置:首页 » 编程语言 » c语言计算分数区间
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言计算分数区间

发布时间: 2022-08-31 15:34:42

c语言编程题 计算分数精确值

自己写方法的话:
void
fun(int
x,int
y,int
d)//x为分子,y为分母,d为精确位数
{
int
temp;
printf("%d.",x/y);//整数部分
while(d>0)
{
x=x%y;
x*=10;
printf("%d",x/y);
d--;
}
}
int
main()
{
int
x,y,d;
x=1;y=3;d=4;
printf("分数%d/%d,精确%d位,为:",x,y,d);
fun(x,y,d);
return
0;
}

② C语言:分数的计算

代码如下 供参考

#include<stdio.h>

structFraction
{
inta,b,s;
};

structFractionAdd(structFractionx,structFractiony);
structFractionSub(structFractionx,structFractiony);

intgcd(inta,intb)
{
while(a!=b)
{
if(a>b)
{
a-=b;
}
else
{
b-=a;
}
}

returna;
}

voidmini(structFraction*a)
{
intg;

if(a->a==0)
{
a->b=1;
return;
}
g=gcd(a->a,a->b);
a->a/=g;
a->b/=g;
}

structFractionAdd(structFractionx,structFractiony)
{
structFractionr;
if(x.s!=y.s)
{
if(x.s==1)
{
y.s=1;
returnSub(x,y);
}
else
{
x.s=1;
returnSub(y,x);
}
}
r.s=x.s;
r.b=x.b*y.b;
r.a=x.a*y.b+x.b*y.a;
mini(&r);

returnr;
}

structFractionSub(structFractionx,structFractiony)
{
structFractionr;
if(x.s!=y.s)
{
if(x.s==1)
{
y.s=1;
returnAdd(x,y);
}
else
{
x.s=1;
r=Add(x,y);
r.s=-1;
returnr;
}
}

r.s=x.s;
r.b=x.b*y.b;
r.a=x.a*y.b-x.b*y.a;
if(r.a<0)
{
r.s*=-1;
r.a*=-1;
}
mini(&r);

returnr;
}

voidDisplay(structFractiona)
{
if(a.s==1)printf("+");
elseprintf("-");
printf("%d/%d ",a.a,a.b);
}

intmain()
{
structFractionAdd(structFractionx,structFractiony);
structFractionSub(structFractionx,structFractiony);
structFractionf1={1,2,1},f2={3,4,1},f3;
f3=Add(f1,f2);
printf(" 两个分数相加的结果为:");Display(f3);
f3=Sub(f1,f2);
printf(" 两个分数相减的结果为:");Display(f3);
return0;
}

③ c语言,怎么实现对分数<就是几分之几>的加减乘除等等的运算

  1. 定义一个数据结构,可以是一个长度2的数组,也可以是一个struct,下面以数组为例

  2. 定义两个长度2的数组 a[2],b[2],分子分别保存在a[0],b[0],分母分别保存在a[1],b[1](负数的话,符号同分子一起)

  3. 乘:分母,分子分别相乘;除:乘以倒数(调换乘数的分子分母);然后约分(涉及最大公约数算法,可网络)

  4. 加减:分母需要相同,涉及最小公倍数算法(可网络)


以上思路和人工计算的方式相同,只是用c语言“翻译”一下

另外提供一个思路,直接计算结果,然后从无限循环小数转化成分数形式

④ 用C语言计算加权分数

本人(无界)用C-Free亲手编写的,亲测可运行

#include<stdio.h>

structstu{ //用结构体数组储存学生的成绩和学分
floatscore; //成绩
floatcredit; //学分
}Stu[100];

intmain()
{
unsignedintx=1,y=0;
//y用于结构体数组Stu,同时用于循环计算该学生成绩
doublesxcsum=0,csum=0,sum;
//sxcsum记录所有成绩乘以学分之和
//csum学分之和
//sum加权成绩
printf("提示:输入完后按回车键结束,输入负数代表学生成绩输入完成 ");
while(1) //循环用户输入成绩,直到用户输入完成后结束
{
printf("请输入第%d门课程的成绩:",x);
scanf("%f",&Stu[y].score);
getchar(); //吸收回车键字符
if(Stu[y].score<0)break; //输入负数结束循环,结束学生输入成绩操作
printf("请输入第%d门课程的学分:",x++);
scanf("%f",&Stu[y++].credit);
getchar();
if(Stu[y-1].credit<0)break;
}
printf("---输入成绩结束--- ");
for(x=0;x<y;x++)//循环计算成绩,直到算完所有课程,y变量储存共有多少门课程
{
sxcsum+=Stu[x].score*Stu[x].credit;
csum+=Stu[x].credit;
}
sum=sxcsum/csum;
printf("该学生的加权成绩为:%g ",sum);
return(0);
}

---“无界”回答---

⑤ C语言:计算全班平均成绩,及统计各分数段人数的程序问题

#include<stdio.h>
intmain(void)
{floatsum=0.0,avg=0.0;
intnum,count,c9,c89,c78,c67,c6;
num=count=c9=c89=c78=c67=c6=0;
scanf("%d",&num);
while(num>=0&&num<101) //这里不能有分号,否则就进入死循环了。另外,还应当允许为0
{sum=sum+num;
count=count+1;
if(num>=90)c9=c9+1;
else
{if(num>=80&&num<90)c89=c89+1;
else
{if(num>=70&&num<80)c78=c78+1;
else
{if(num>=60&&num<70)c67=c67+1;
elsec6=c6+1;
}
}
}
scanf("%d",&num);
}
avg=sum/count;
printf("全班平均成绩为:%f ",avg);
printf("90分以上的(包括90分)的人数是:%d ",c9);
printf("80~90分(包括80分)的人数是:%d ",c89);
printf("70~80分(包括70分)的人数是:%d ",c78);
printf("60~70分(包括60分)的人数是:%d ",c67);
printf("60分以下的人数是:%d ",c6);
return0;
}

⑥ 用C语言求 输入30个成绩数据,统计各分数段(0~59,60~69,70~79,80~89,90~100)的人数,最高分,最低分和平均分.

#include<stdio.h>
main()
{ int i,a[30], b[5],max,min,ave=0;
bb[5]={0};
printf("Enter 30 students' goals:\n");
for(i=0;i<30;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<30;i++)
{if(a[i]>=0&&a[i]<=59)b[0]++;
if(a[i]>=60&&a[i]<=69)b[1]++;
if(a[i]>=70&&a[i]<=79)b[2]++;
if(a[i]>=80&&a[i]<=89)b[3]++;
if(a[i]>=90&&a[i]<=100)b[4]++;
if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
ave+=a[i];
}
ave/=30;
prifnt("各阶段的成绩人数分别为:\n");
for(i=0;i<5;i++)
printf("%4d",b[i]);
printf("最高分与最低分和平均分分别为:\n");
printf("max=%d,min=%d,ave=%d",max,min,ave);
}

⑦ c语言编程题 统计成绩数组score中各分数段的人数并存储到数组num中。分数段60~69,70

#include <stdio.h>

int main()
{
int num[5]={0};
int score[123]={93,85,77,68,59,43,94,75,98};
int i;
for(i=1;i<=9;i++)
{
if(score[i]>=90 && score[i]<=99)
num[3]++;
else if(score[i]>=80 && score[i]<=89)
num[2]++
else if(score[i]>=70 && score[i]<=79)
num[1]++;
else if(score[i]==100)
num[4]++;
else
num[5]++;
}
printf("%d,%d,%d,%d,%d\n",num[1],num[2],num[3],num[4],num[5]);
return 0;
}

⑧ 全国计算机二级c语言怎么计算分数

你好!!!
首先等级考试要是过的话,笔试和机试都得考过才可以拿到证书。过的话有及格和优秀,优秀笔试和机试都得大于85吧。
关于笔试的话,就是按笔试的评分标准。
机试的话,我想并不是按照你写多少就给你多少的分。
比如:你填空花费了半天的时间还没有填完,后面的都没有写,即使你填对60个分,都可能不及格的。
但是也许你每个题目都做了,即使没有完全答对,特别是编程题,只要你有你的思路,框架就Ok了,即使你没有做对60分也有可能及格的。

⑨ C语言 分数计算怎么编 如1+1/2+1/3+1/4+……1/n

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。