标题:求牛人变C++程序 为C语言
取消只看楼主
墨本无非
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2012-6-20
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求牛人变C++程序 为C语言
综合练习题:
给定一个班的学生(假定30人)学号(number)、姓名(name)、成绩(score),存入数组(stud)。
⑴    根据学生学号进行排序;
⑵    键盘输入一个学生名字,进行查找。若找到,将其学号、姓名、成绩输出。若没找到,输出“查无此人”;
⑶    求平均成绩,并将全班高于平均成绩的成员输出(学号、姓名、成绩)。
⑷    要求前三项,都是用函数实现。

#include<stdio.h>
#include<string.h>
#include<iomanip.h>
#define 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;
    printf("Please input data\n”);
    for(i=0;i<N;i++)         //输入N个数据
    {
        Scanf(“%dnum[i];
     scanfname[i];
        scanfscore[i];
    }

   sort(num,name,score);
    for(i=0;i<N;i++)
    {
        printf(“num[i]<<setw(7);
        printf(“name[i]<<setw(7);
        printf(“score[i]<<endl;
    }
    printf(“"Please input a name:"<<endl;
    scanfsomebody;
    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;
        printf(“num[i]<<setw(7);
        printf(“name[i]<<setw(7);
        printf(“score[i]<<endl;
        }
    if(!flag)
        printf(“"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;
    printf(“"Average="<<ave<<endl;
    printf(“"Above the average:"<<endl;
    for(i=0;i<N;i++)
        if(score[i]>ave)
        {
            printf(“num[i]<<setw(7);
            printf(“name[i]<<setw(7);
           printf(“score[i]<<endl;
        }
}
这是C++程序 求教牛人给变成C语言 小弟是在束手无策了

搜索更多相关主题的帖子: number 练习题 include 姓名 void 
2012-06-21 14:25
墨本无非
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2012-6-20
得分:0 
有没有此类大佬级人物啊 如何变C++为C语言啊
2012-06-21 14:45
墨本无非
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2012-6-20
得分:0 
回复 3楼 beyondyf
其实上次发错了, 这不是原来的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;
        }
}


2012-06-24 13:06
墨本无非
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2012-6-20
得分:0 
回复 17楼 beyondyf
帖子已经新开 实现功能即可
2012-06-25 14:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-372009-1-1.html




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

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