永发信息网

急求一百行左右的C语言编程!

答案:5  悬赏:40  手机版
解决时间 2021-03-05 04:42
急求一百行左右的C语言编程!
最佳答案
#include
#include
struct student
{
int number;//学号
double sum;//三门课的总成绩
double average;//三门课的平均分
char name[20];//学生姓名
double score[3];//三门课的成绩
};
student stu[10];//定义10个结构体对象
double ave1=0,ave2=0,ave3=0;//0个学生的每门课的平均分
void input()//输入10个学生的信息的函数
{
int i,j;
for(i=0;i<10;i++)
{
scanf("%d",&stu[i].number);//输入学号
scanf("%s",stu[i].name);//输入姓名
for(j=0;j<3;j++)//输入三门成绩
scanf("%lf",&stu[i].score[j]);
}
}
void average1()//求每个学生的三门课的平均分的函数
{
int k,j;
for(k=0;k<10;k++)
{
stu[k].sum=0;
for(j=0;j<3;j++)
stu[k].sum=stu[k].score[j]+stu[k].sum;
stu[k].average=stu[k].sum/3;
}
}
void average2()//求10个学生的每门课的平均分
{
int i;
for(i=0;i<10;i++)
{
ave1=ave1+stu[i].score[0];
ave2=ave2+stu[i].score[1];
ave3=ave3+stu[i].score[2];
}
ave1=ave1/10;
ave2=ave2/10;
ave3=ave3/10;
}
void scort()//根据三门课的平均分排序 选择法排序
{
int i,j,k;
student st;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(stu[j].average>stu[k].average)
k=j;
if(i!=k)
{
st=stu[i];
stu[i]=stu[k];
stu[k]=st;
}
}
}
void output()//输出排名后的信息
{
int i,j;
printf("the first course average of the 10 students is:%0.2lf\n",ave1);
printf("the second course average of the 10 students is:%0.2lf\n",ave2);
printf("the third course average of the 10 students is :%0.2lf\n",ave3);
printf("After the ranking:\n");
for(i=0;i<10;i++)
{
printf("Rank %d",i+1);//排名
printf(" studentnumber:%d studentname:%s the average of the three course is:%0.2lf\n",stu[i].number,stu[i].name,stu[i].average);
printf("the total score of the three course is:%0.2lf\n",stu[i].sum);
printf("the score of the three course is: ");
for(j=0;j<3;j++)
{
printf("%0.2lf ",stu[i].score[j]);
}
printf("\n\n");
}
}
void main()
{
printf("please intput 10 students information\nstudentnumber,studentname,the score of three course\n");
input();
average1();
average2();
scort();
output();
}
//自己数数有多少行吧,反正绝对是原创,这是以前给别人编写的一个程序,就是不知道你能不能看懂,有输入输出提示的不过是英文提示追问这个编程的题目是什么?追答题目大致是用C语言的结构体,建立一个学生结构体,数据成员包括学生姓名,学号,三门课程,平均分,总成绩。输入10个学生的信息,计算个人平均分,和10个人的总平均分,根据个人三门课的平均分排名,输出排名后的学生信息。追问怎么运行错误啊?追答你能把错误信息给我看下吗?也可能是编译器的问题!要不你直接把题目给出来,让大家能为你量身定制
全部回答
要求是什么
问题非常笼统
#include
#include
#define N 100000
void make_num(int t[],int x,int y)//产生100000位小数,存在数组a中
{
 int i,k=0,m,temp;
 temp=x;
 for(i=0;i {
  temp=temp%y*10;//分子除以分母再余
  t[i]=temp/y;//余数除以分母,得到一位小数
  if(temp==0)
   k++;
  if(k>=100) //如果除尽100次以上,就认为是有限小数
  {
   system("cls");
   printf("%d/%d不是循环小数为%d.",x,y,x/y);
   for(i=0;i<=20;i++)
    printf("%d",t[i]);
   printf(" ");
   exit(0);
  }
 }
}
int start(int t[])//  找循环体的起始位置
{
 int i,j,m=0,n=0,b[1000];
 for(i=0,j=N-1000;i<1000;j++,i++)//将a中后1000位放在数组b中
  b[i]=t[j];
 for(i=0;i                   //此时得到n的值就是,使它们相等的初始位置
 {
  if(t[i]==b[m])
  {
   if(m==0)  n=i;
   m++;
  }
  else if(m!=0 && t[i]!=b[m])
   m=0;
  if(m==999)
   break;
 }
 for(i=n-1,j=N-1001;i>=0;i--,j--)//从a[n-1]与a[N-1001]的位置开始比较,当不相等时的位置即为
                              //循环体的起始位置
 {
  if(t[i]!=t[j])
   break;
 }
 return i+1;
}
int find(int t[],int x)          //找循环体的结束位置
{
 int i,j,k,m;
 for(i=x+1,k=x;i                    //相等,则此位置就是循环体的结束位置
 {
  if(t[i]==t[k])
  {
   k++;
   m=i-k+x;
  }
  else
   k=x;
 }
 return m;
}
main()
{
 int i,m1,start_n,end,son,mon,a[N];
 printf("请输入分子和分母: ");
 scanf("%d %d",&son,&mon);
 make_num(a,son,mon);
 start_n=start(a);          //循环体的起始位置
 system("cls");
 printf(" 循环的起始的小数位为: %d ",start_n+1);
 end=find(a,start_n);       //循环体的结束位置
 if(end-start_n>=1000)      //如果结束位置减去起始位置大于1000位,则认为此分数为无限不循环
                         //理论上没有无限不循环的分数,本人也不大清楚,可能这个if可以不要
 {
  system("cls");
  printf("%d/%d为无限不循环小数为:  %d.",son,mon,son/mon);
  for(i=0;i<=1000;i++)
   printf("%d",a[i]);
  printf(" ");
  exit(0);
 }
 printf("%d/%d的无限循环小数如下: %d.",son,mon,son/mon);//输出分数的整数部分和小数点
 for(i=0;i  printf("%d",a[i]);
 printf("[");
 for(i=start_n;i<=end;i++)//输出循环的部分
  printf("%d",a[i]);
 printf("] 说明:[]中的数字是循环体 ");
}
找无限循环小数的循环体及循环的起始位置,如下:
你如果从这里拷走了代码
1 你是在抄袭,
2 你不是在自己编程
3 这没有一点儿意义
你不觉的很讽刺吗.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
四川师范大学成龙校区音乐学院(东北门)怎么去
某上市银行的一位董事涉及巨额贪污,可能对该
三星a5手机卡槽坏了心还能修好吗?
第一次工业革命带来的影响是什么?(6分)
为什么没人喜欢我呢
蓝柏咖啡小屋地址在哪,我要去那里办事
是眨眼次数少眼睛最疲劳还是眨眼次数多眼睛最
什么法是要求评定者根据某一工作行为发生的频
X-03.X=9.8解方程
电动车配件那儿有卖
女朋友叫我亲爱的,我要怎么回应
宝来保值吗
老公与丈母娘关系处不好,丈母娘要女儿离婚,
我们的生活就应该是……这首歌是什么?
在同一平面内有2009条直线a1,a2,a3,…,a2009,
推荐资讯
本人做EPC C1G2 RFID电子标签的,等着那天有
关于期货的以下说法,正确有( )。A.期货是在
【湘行散记好词好句】好词好句摘抄大全
【鸟鸣涧】鸟鸣涧每句诗的意思谢谢
下载从下面向上看字这个软件
怎样用WPF绘制简单的三维曲线?
奋不顾身是什么意思
人民路北一里安北下临时摆卖街我想知道这个在
这才几分钟 我朋友的求助帖也一块去了国产区
太白山门票多少钱2017
地球上最大的生态系统叫做AA. 生物圈B. 大气
四川省就业训练中心短期技能培训随时可以报名
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?