qq_58810702 2021-05-31 10:36 采纳率: 50%
浏览 48
已采纳

c语言,求大佬帮帮忙,谢谢。

学生的记录由学号,得分组成,根据班级人数,将学生记录存放在结构体数组中。假设m位学生玩游戏,游戏规则如下:学生按学号顺序(升序)从2开始依次报数,报到质数得2分,其余数字得1分,求n轮后各学生的得分。要求:m,n,学号均由键盘输入。

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-05-31 10:52
    关注

    就是做个循环啊,判断序号是否素数,人数循环,计算各人的分数

    /*
    学生的记录由学号,得分组成,根据班级人数,将学生记录存放在结构体数组中。
    假设m位学生玩游戏,游戏规则如下:学生按学号顺序(升序)从2开始依次报数,报到质数得2分,
    其余数字得1分,求n轮后各学生的得分。要求:m, n, 学号均由键盘输入。
    */
    
    typedef struct _student
    {
    	int nID;
    	int score;
    }student;
    
    bool isShusu(int n)
    {
    	for (int i = 2; i < n; i++)
    	{
    		if (n%i == 0)
    			return false;
    	}
    	return true;
    }
    
    void main()
    {
    	student stu[100];
    	int m, n,i;
    	printf("请输入班级人数:");
    	scanf_s("%d", &m);
    	printf("\n");
    	printf("请逐个输入学生学号:");
    	for (i = 0; i < m; i++)
    	{
    		scanf_s("%d", &stu[i].nID);
    		stu[i].score = 0;
    	}
    	printf("\n");
    	printf("请输入游戏轮数:");
    	scanf_s("%d", &n);
    	printf("\n");
    	for (i = 0; i < n; i++)
    	{
    		if (isShusu(i+2))
    			stu[i % m].score += 2;
    		else
    			stu[i % m].score++;
    	}
    	for (i = 0; i < m; i++)
    	{
    		printf("学号%d的学生得分:%d\n", stu[i].nID, stu[i].score);
    	}
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?