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条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据