怎么编写这两个程序(C语言)学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 13:57:39
怎么编写这两个程序(C语言)学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同

怎么编写这两个程序(C语言)学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同
怎么编写这两个程序(C语言)
学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同学)围成一圈,按照顺时针方向进行编号.然后随便选定一个数m,并且从1号同学开始按照顺时针方向依次报数,1,2,…,m,凡报到m的同学,都要主动退出圈子.然后不停地按顺时针方向逐一让报出m者出圈,最后剩下的那个人就是去参加开幕式的人.
  要求:用环形链表的方法来求解.所谓环形链表,即对于链表尾结点,其next指针又指向了链表的首结点.基本思路是先创建一个环形链表,模拟众同学围成一圈的情形.然后进入循环淘汰环节,模拟从1到m报数,每次让一位同学(结点)退出圈子.
  输入格式:输入只有一行,包括两个整数n和m,其中n和 m的含义如上所述.
  输出格式:输出只有一个整数,即参加开幕式的那个人的编号.
  输入输出样例样例输入8 3样例输出7
学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同学)围成一圈,按照顺时针方向进行编号.然后随便选定一个数m,并且从1号同学开始按照顺时针方向依次报数,1,2,…,m,凡报到m的同学,都要主动退出圈子.然后不停地按顺时针方向逐一让报出m者出圈,最后剩下的那个人就是去参加开幕式的人.
要求:用环形链表的方法来求解.所谓环形链表,即对于链表尾结点,其next指针又指向了链表的首结点.基本思路是先创建一个环形链表,模拟众同学围成一圈的情形.然后进入循环淘汰环节,模拟从1到m报数,每次让一位同学(结点)退出圈子.
输入格式:输入只有一行,包括两个整数n和m,其中n和 m的含义如上所述.
输出格式:输出只有一个整数,即参加开幕式的那个人的编号.
输入输出样例
输入样例:
8 3
输出样例:
7
请编写程序的时候不要加什么请输入的一类文字~
编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩:
  (1) 如果该字符是空格,则保留该字符;
  (2) 如果该字符是第一次出现或第三次出现或第六次出现,则保留该字符;
  (3) 否则,删除该字符.
  例如,若用户输入“occurrence”,经过压缩后,字符c的第二次出现被删除,第一和第三次出现仍保留;字符r和e的第二次出现均被删除,因此最后的结果为:“ocurenc”.
  输入格式:输入只有一行,即原始字符串.
  输出格式:输出只有一行,即经过压缩以后的字符串.
  输入输出样例样例输入occurrence样例输出ocurenc
编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩:
(1) 如果该字符是空格,则保留该字符;
(2) 如果该字符是第一次出现或第三次出现或第六次出现,则保留该字符;
(3) 否则,删除该字符.
例如,若用户输入“occurrence”,经过压缩后,字符c的第二次出现被删除,第一和第三次出现仍保留;字符r和e的第二次出现均被删除,因此最后的结果为:“ocurenc”.
输入格式:输入只有一行,即原始字符串.
输出格式:输出只有一行,即经过压缩以后的字符串.
输入输出样例
输入样例:
occurrence
输出样例:
ocurenc

怎么编写这两个程序(C语言)学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同

第一道题:

#include <stdio.h>
#include <malloc.h>

struct List
{
\x09int i;
\x09struct List *next;
};

void Create(List** pList,int stu)
{
\x09int i;
\x09List *p = NULL;
\x09List *q = p;
\x09for(i=0; i<stu; i++)
\x09{
\x09\x09p = (List*)malloc(sizeof(List));
\x09\x09p->i = i+1;
\x09\x09p->next = NULL;
\x09\x09if(i == 0)
\x09\x09{
\x09\x09\x09*pList = q = p;
\x09\x09}
\x09\x09else
\x09\x09{
\x09\x09\x09q->next = p;
\x09\x09\x09q = q->next;
\x09\x09}
\x09}
\x09q->next = *pList;
}

void Select(List** pList,int num)
{
\x09int i;
\x09List* p = NULL;
\x09p = *pList;
\x09if(*pList == (*pList)->next)
\x09\x09return;
\x09for(i=0; i<num-2; i++)
\x09{
\x09\x09p = p->next;
\x09}
\x09p->next = p->next->next;
\x09*pList = p->next;
\x09Select(pList,num);
}

int main(void)
{
\x09int Student, num;
\x09List *pList = NULL;

\x09scanf("%d %d",&Student,&num);

\x09if(num == 1)
\x09{
\x09\x09printf("%d\n",Student);
\x09\x09return 0;
\x09}

\x09Create(&pList,Student);
\x09Select(&pList,num);
\x09printf("%d\n",pList->i);

\x09return 0;    
}


第二道题:

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main(void)
{
\x09char buff[1000] = {0};
\x09int i = 0;
\x09int j,k;
\x09int *a;
\x09char *c;
\x09gets(buff);
\x09i = strlen(buff);
\x09c = (char *)malloc(i+1);
\x09a = (int *)malloc(i);

\x09for(j=0; j<i; j++)
\x09\x09a[j] = 1;

\x09for(j=i-1; j>=0; j--)
\x09{
\x09\x09if(buff[j] == ' ')
\x09\x09\x09continue;
\x09\x09for(k=0; k<j; k++)
\x09\x09{
\x09\x09\x09if(buff[j] == buff[k])
\x09\x09\x09\x09a[j]++;
\x09\x09}
\x09}

\x09k = 0;
\x09for(j=0; j<i; j++)
\x09{
\x09\x09if(a[j] == 1 || a[j] == 3 || a[j] == 6)
\x09\x09{
\x09\x09\x09c[k] = buff[j];
\x09\x09\x09k++;
\x09\x09}
\x09}
\x09c[k] = '\0';

\x09printf("%s\n",c);
\x09return 0;    
}

怎么编写这两个程序(C语言)学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同 C语言怎么编写根号下(两个数的平方和)的程序 编写一个程序(C语言):给出两个正整数,求他们的最大公约数和最小公倍数.(主要是辗转相除法怎么用) 编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语言怎么写程序啊求详细解释~急! C语言中怎么编写程序判断两个平行于坐标轴的矩形是否相交,麻烦大神们了. C语言程序 设计:用辗转相除法求两个正整数的最大公约数编写程序 C 语言 编写程序,计算分段函数: C语言编写程序四则运算法则 编写C语言程序从n(20 编写以下框图的C语言程序 下列C语言程序哪有错误?用C语言编写编写程序哪有错误? 编写一个c语言程序 求两个整数的最大公约数我只要最大公约数 用C语言编写程序:输入两个正整数m,n.求其最大公约数和最小公倍数 c语言编写程序用辗转相除法求两个正整数m和n的最大公约数 编写C语言程序,输入两个的正整数,求出它们的和、差、积、商. 编写一个程序用单链表存储多项式,并实现两个多项式相加的函数?C/C++语言 用C语言编写程序:输入两个正数m和n,求其最大公约数和最小公倍数 编写一程序,要求由键盘输入三个数,计算以这三个数为边长的三角形面积.用C语言编写.谢谢!