| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:变C++为C
取消只看楼主 加入收藏
墨本无非
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2012-6-20
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:0 
变C++为C
给定一个班的学生(假定30人)学号(number)、姓名(name)、成绩(score),存入数组(stud)。
    根据学生学号进行排序;
    键盘输入一个学生名字,进行查找。若找到,将其学号、姓名、成绩输出。若没找到,输出“查无此人”;
    求平均成绩,并将全班高于平均成绩的成员输出(学号、姓名、成绩)。
    要求前三项,都是用函数实现。

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
int const N=3;
void main()
{
    void sort(int *,string[],int*);
    void find(string,int *,string [],int*);
    void average(int *,string [],int *);
    int i;
   int num[N],score[N];
    string name[N],somebody;
    cout<<"Please input data:"<<endl;
    for(i=0;i<N;i++)         //输入N个数据
    {
        cin>>num[i];
     cin>>name[i];
        cin>>score[i];
    }

   sort(num,name,score);
    for(i=0;i<N;i++)
    {
        cout<<num[i]<<setw(7);
        cout<<name[i]<<setw(7);
        cout<<score[i]<<endl;
    }
    cout<<"Please input a name:"<<endl;
    cin>>somebody;
    find(somebody,num,name,score);
   average(num,name,score);
}

void sort(int *nu,string na[],int *sc )//排序
{
    int i,j,num_temp,score_temp;
    string name_temp;

    for(i=0;i<N-1;i++)           
        for(j=i+1;j<N;j++)
        if(nu[i]<nu[j])
        {
            num_temp=nu[i];
            nu[i]=nu[j];
            nu[j]=num_temp;
            score_temp=sc[j];
            sc[j]=sc[i];
            sc[i]=score_temp;
            name_temp=na[i];
            na[i]=na[j];
            na[j]=name_temp;
        }
}

void find(string one,int *num,string name[],int *score)//查找
{
    bool flag=false;
    for(int i=0;i<N;i++)
        if(one==name[i])
        {
        flag=true;
        cout<<num[i]<<setw(7);
        cout<<name[i]<<setw(7);
        cout<<score[i]<<endl;
        }
    if(!flag)
        cout<<"No such people"<<endl;
}
void average(int *num,string name[],int *score)
//求平均值,输出高于平均的
{
    int i,sum=0;
    float ave;
    for(i=0;i<N;i++)
        sum+=score[i];
    ave=(float)sum/N;
    cout<<"Average="<<ave<<endl;
    cout<<"Above the average:"<<endl;
    for(i=0;i<N;i++)
        if(score[i]>ave)
        {
            cout<<num[i]<<setw(7);
            cout<<name[i]<<setw(7);
           cout<<score[i]<<endl;
        }
}

可以依据这个程序改 也可以重新换一套 但最后要的是c语言 最后要能实现题目所要求的功能
搜索更多相关主题的帖子: void 姓名 include number 
2012-06-25 13:58
快速回复:变C++为C
数据加载中...
 
   



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

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