关于#c++#的问题

img


img


img

我的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,a[7],b[7],i,j,z=0,_1=0,_2=0,_3=0,_5=0,_4=0,_6=0,t=0;
    cin>>n;
    for(i=0;i<7;i++)
    {
        cin>>a[i];
    }
    for(i=0;j<n;j++)
    {
        z=0;
        for(i=0;i<7;i++)
        {
            cin>>b[i];
        }
        for(i=0;i<7;i++)
        {
            if(b[i]==a[i])
                z++;
        }
        if(z==1)
        _6++;
        if(z==2)
        _5++;
        if(z==3)
        _4++;
        if(z==4)
        _3++;
        if(z==5)
        _2++;
        if(z==6)
        _1++;
        if(z==7)
        t++;
    }
    cout<<t<<' '<<_1<<' '<<_2<<' '<<_3<<' '<<_4<<' '<<_5<<' '<<_6<<' ';
    return 0;
}

显示输出:

0 0 0 0 0 0 0 

有两个问题:

  • 11行的for循环的j打成i了

  • 整体的思路还忽略了一点,题意里说明了兑奖时并不考虑彩票上的号码和中奖号码中各个号码出现的位置,而在你的代码里的思路是如果第i位的号码相同才会计数。结合彩票的号码都在1到33之间,可以考虑用数组a[i]表示号码i出现的次数,然后进行判断。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7625539
  • 你也可以参考下这篇文章:C++类中有数组成员初始化简单示例
  • 除此之外, 这篇博客: C++ 机房预约系统中的 3.2 显示自身预约 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先,我们先添加几条记录,可以用程序添加或者直接修改 order.txt 文件

    order.txt 文件内容如下:比如我们有三名同学分别产生了 3 条预约记录

    在 student 类的成员函数 showMyOrder 中添加代码

    // 查看自身预约
    void Student::showMyOrder() {
    	OrderFile of;
    	if (of.m_Size == 0)
    	{
    		cout << "无预约记录" << endl;
    		system("pause");
    		system("cls");
    		return;
    	}
    	for (int i = 0; i < of.m_Size; i++)
    	{
    		// string 转 int
    		// string 利用 c_str() 转 const char*
    		// 利用 atoi(const char*) 转 int
    		if (atoi(of.m_OrderData[i]["stuId"].c_str()) == this->m_Id)
    		{
    			cout << "预约时期:周" << of.m_OrderData[i]["date"]
    				<< "  时段:" << (of.m_OrderData[i]["interval"] == "1" ? "上午" : "下午")
    				<< "  机房:" << of.m_OrderData[i]["roomId"] << "号";
    			string status = "  状态:";  // 0 为取消,1 为 审核中,2 为已预约, -1 为预约失败
    			if (of.m_OrderData[i]["status"] == "1")
    			{
    				status += "审核中";
    			}
    			else if (of.m_OrderData[i]["status"] == "2")
    			{
    				status += "预约成功";
    			}
    			else if (of.m_OrderData[i]["status"] == "0")
    			{
    				status += "预约取消";
    			}
    			else if (of.m_OrderData[i]["status"] == "-1")
    			{
    				status += "预约失败";
    			}
    			cout << status << endl;
    		}
    	}
    	system("pause");
    	system("cls");
    };
    

    string 转 int
    string 利用 c_str() 转 const char*
    利用 atoi(const char*) 转 int

  • 您还可以看一下 夏曹俊老师的c++与人工智能课程中的 完成主循环和场景摄像机刷新显示小节, 巩固相关知识点