C++第5次作业

项目2:数组选择

   从键盘中输入10个数放在数组A中,将该数组中不重复的数放到数组B中,如A数据中的值为1,2,3,4,2,1;则B数组中的值为3 4

#include<iostream>  
using namespace std;  
int main()  
{  
    const int I=10;  
    int A[I],B[I],i,j,k=0; 
	cout<<"请在A中输入10个数"<<endl;
    cout<<"A:";  
    for(i=0;i<I;i++)  
        cin>>A[i];  
    for(i=0;i<I;i++)  
    {  
        for(j=0;j<I;j++)  
        {  
            if(i==j)  
                continue;  
            if(A[i]==A[j])  
                break;  
            if(j==I-1)  
            {  
                B[k]=A[i];  
                k++;  
            }  
        }  
    }  
    cout<<"B:"; 
    for(i=0;i<k;i++)  
        cout<<B[i]<<" ";
	cout<<endl;
}  

项目3:成绩

在数组score中将要存储某小组程序设计的成绩(设有10人),编程实现下列功能:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。

#include <iostream>

using namespace std;

int main()
{
    int sco[10],i,j=0,k=0,num,max,min;
    double aver;
    cout <<"请输入10个人的成绩"<<endl;
    for(i=0;i<10;i++)
    {
        cin>>num;
        if(num>=0&&num<=100)
            sco[i]=num;
    }
    max=min=aver=sco[0];
    for(i=0;i<10;i++)
    {
        aver+=sco[i];
        if(sco[i]>max)
            max=sco[i];
        else if(sco[i]<min)
            min=sco[i];
    }
    aver=aver/10.0;
    cout<<"max="<<max<<endl;
     cout<<"min="<<min<<endl;
      cout<<"aver="<<aver<<endl;
    for(i=0;i<10;i++)
    {
        if(sco[i]==max)
        {
            j++;
            cout<<"最高成绩同学的学号:"<<i<<endl;

        }
        else if(sco[i]==min)
            {
                k++;
                cout<<"最低成绩同学的学号:"<<i<<endl;
            }
    }
    cout<<"考的最高成绩的人数:"<<j<<endl;
     cout<<"考的最低成绩的人数:"<<k<<endl;
    return 0;
}
项目4:字符串

#include<iostream.h>
#include<stdio.h>
int main()
{
    char str[50];
    int i=0,j=0,k=0,m=0,n=0;
    cout<<"输入字符串:"<<endl;
    gets(str);
    while(str[i]!='\0')
    {
        if(str[i]>='0'&&str[i]<='9')
            j++;
        else if(str[i]>='A'&&str[i]<='Z')
            k++;
        else if(str[i]>='a'&&str[i]<='z')
            m++;
        else
            n++;
        i++;
    }
    cout<<"其中的数字个数是: "<<j<<endl;
    cout<<"其中的大写字母个数是: "<<k<<endl;
    cout<<"其中的小写字母个数是: "<<m<<endl;
    cout<<"其中的其他字符个数是: "<<n<<endl;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
带期限作业排序问题是一个经典的贪心问题,可以使用C++实现。具体实现步骤如下: 1. 创建作业结构体,包含作业编号、作业所需时间和截止时间两个属性。 ``` struct Job { int jobId; // 作业编号 int timeNeeded; // 作业所需时间 int deadline; // 截止时间 }; ``` 2. 创建一个比较函,用于将作业按照截止时间从早到晚排序。 ``` bool compare(Job a, Job b) { return a.deadline < b.deadline; } ``` 3. 将所有作业按照截止时间排序。 ``` sort(jobs.begin(), jobs.end(), compare); ``` 4. 创建一个布尔数组,表示每个时间点是否有作业在执行。 ``` bool timeline[MAX]; // MAX为时间的最大,根据实际情况确定 ``` 5. 从第一个作业开始遍历,将作业插入到最晚的可行时间点。 ``` for (int i = 0; i < n; i++) { for (int j = min(MAX - 1, jobs[i].deadline) - 1; j >= 0; j--) { if (!timeline[j]) { timeline[j] = true; ans += jobs[i].timeNeeded; break; } } } ``` 6. 输出完成所有作业所需的最短时间。 ``` cout << ans << endl; ``` 完整代码如下: ``` #include <iostream> #include <algorithm> #include <vector> using namespace std; const int MAX = 10005; struct Job { int jobId; // 作业编号 int timeNeeded; // 作业所需时间 int deadline; // 截止时间 }; bool compare(Job a, Job b) { return a.deadline < b.deadline; } int main() { int n; // 作业量 cin >> n; vector<Job> jobs(n); for (int i = 0; i < n; i++) { jobs[i].jobId = i; cin >> jobs[i].timeNeeded >> jobs[i].deadline; } sort(jobs.begin(), jobs.end(), compare); bool timeline[MAX] = { false }; int ans = 0; for (int i = 0; i < n; i++) { for (int j = min(MAX - 1, jobs[i].deadline) - 1; j >= 0; j--) { if (!timeline[j]) { timeline[j] = true; ans += jobs[i].timeNeeded; break; } } } cout << ans << endl; return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值