| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:我写了一个代码,有点问题,高手看一下
取消只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
收藏
已结贴  问题点数:16 回复次数:1 
我写了一个代码,有点问题,高手看一下
//本程序冒泡排序有点问题,还是输出有问题,大家帮忙看看
#include <stdio.h>
int chengji0[10];
void switches(float chengji[])
{
    int i,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;//都应该初始化数据
   for(i=0;i<5;i++)//i用来做循环,读取各个成绩的分段
{
        if(chengji[i]<60){j++;}
        if(chengji[i]<65&&chengji[i]>60){h++;}
        if(chengji[i]<70&&chengji[i]>65){g++;}
        if(chengji[i]<75&&chengji[i]>70){f++;}
        if(chengji[i]<80&&chengji[i]>75){e++;}
        if(chengji[i]<85&&chengji[i]>80){d++;}
        if(chengji[i]<90&&chengji[i]>85){c++;}
        if(chengji[i]<95&&chengji[i]>90){b++;}
        if(chengji[i]<100&&chengji[i]>95){a++;}
}
printf("各个的分段人数为:\n");
for(i=0;i<5;i++)//输出各个成绩,若没有该分段成绩的值则不输出
{
    if (a>0)
        printf("95分以上=%d\n",a);
    if (b>0)
        printf("90分以上=%d\n",b);
    if (c>0)
        printf("85分以上=%d\n",c);
    if (d>0)
         printf("80分以上=%d\n",d);
    if (e>0)
        printf("75分以上=%d\n",e);
    if (f>0)
        printf("70分以上=%d\n",f);
    if (g>0)
         printf("65分以上=%d\n",g);
    if (h>0)
        printf("60分以上=%d\n",h);
    if (j>0)
         printf("60分以下=%d\n",j);
}
}
void dataout(int number[],float chengji[])//输出输出函数
{
    int j;
    int i;
    for(i=1;i<=5;i++) chengji0[i]=chengji[i];
   printf("排序后的数据为:\n");
        for(j=0;j<5;j++)
        {
         printf("%d %f",number[j],chengji[j]);//输出
             printf("\n");
        }
}
   
 sort(float chengji[])/*这地方改了下!你对比这看看*/
{   
    int i,j,kz;//i,j用来做循环,
    float t;//t用来数值交换
      for(i=1;i<=5;i++)//应为冒泡排序,所以可以少比较一次
      {
          //kz=1;
         for(j=1;j<=5-1-i;j++)//同上
           if(chengji[j]>chengji[j+1])//如果前一个数比后一个数大,那么就进行数值交换
           {
              //kz=0;
              t=chengji[j];
               chengji[j]=chengji[j+1];
               chengji[j+1]=t;//数值交换
               
           }
      }
   
}
void main()
{
    int number[5];
    float chengji[5];
    int i,j;
    float sum=0.0,ave;//number[5]用来记录学生的学号,chengji[5]用来记录学生的成绩,sum计算总分,ave计算平均分
    printf ("please input 5 students number:\n");
    for(i=0;i<5;i++)
    {
       scanf("%d",&number[i]);
    }
    printf("please input 5 students grade:\n");
    for(j=0;j<5;j++)
   {
     scanf("%f",&chengji[j]);
   }
    for(j=0;j<5;j++)
    {
      sum=sum+chengji[j];
    }//计算总分
      ave=sum/5;//计算平均分

     printf("平均成绩ave=%f\n",ave);
      printf("超出平均分的人数有:\n");
     for (j=0;j<5;j++)
      {if (chengji[j]>ave)//比较是否超过平均分
      printf("%d %f\n",number[j],chengji[j]);
     }sort(chengji);//调用排序函数
      dataout(number,chengji);//调用数据输出函数
      switches(chengji);//调用分段函数
}

搜索更多相关主题的帖子: 代码 
2010-07-14 11:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
感谢,不小心把i打成j了,惭愧

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-14 13:17
快速回复:我写了一个代码,有点问题,高手看一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016795 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved