}
9.2
n/=10; a[i]=b; i++; }
a[i]=n;
int flag=0;
for(c=0; c
for(d=c+1; d
if(a[c]==a[d]) {
flag=1; break; } }
//if (a[0] == a[i-1]||a[0] == a[1]) flag=1; if(flag) printf(\); else printf(\);
教授的课(4分)
题目内容:
教授正在为一个有N个学生的班级讲授离散数学课。他对某些学生缺乏纪律性很不满意,于是决定:如果课程开始后上课的人数小于K,就取消这门课程。从键盘输入每个学生的到达时间,请编程确定该课程是否被取消。如果该门课程被取消,则输出“Yes”,否则输出“No”。假设教授在时刻0开始上课。如果一个学生的到达时间是非正整数,则表示该学生在上课前进入教室。如果一个学生的到达时间是正整数,则表示该学生在上课后进入教室。如果一个学生在时刻0进入教室,也被认为是在上课前进入教室。假设到达时间的绝对值不超过100,学生数N不超过1000。要求在输入学生的到达时间之前,先输入N和K。 已知函数原型:
//函数功能:根据数组a中记录的学生到达时间确定课程是否被取消,取消则返回1,否则返回0 int IsCancel(int a[], int n, int k); 程序运行结果示例1: Input n,k: 4,3↙ -1 -3 4 2↙ YES
程序运行结果示例2:
Input n,k: 5,3↙ -1 -2 -3 0 4↙ NO
输入提示:\输入格式: \ \
输入包括两行数据: 第1行是n,k的值。 第2行是学生的到达时间。 输出格式:
课程被取消,输出\ 课程不取消,输出\
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
int IsCancel(int a[], int n, int k){ int i,s=0;
for (i=0;i if (s elsereturn 0; } int main() { int a[100]; int i,n,k; printf(\); scanf(\,&n,&k); for (i=0;i if(IsCancel(a,n,k)) printf(\); else printf(\); return 0; } 9.3 寻找鞍点(4分) 题目内容: 请编程找出一个M*N矩阵中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。如果矩阵中没有鞍点,则输出“No saddle point!” 已知函数原型: void FindSaddlePoint(int a[][N], int m, int n); 在该函数中输出有无鞍点的信息。 程序运行结果示例1: Input m,n: 3,3↙ Input matrix: 1 2 3↙ 4 5 6↙ 7 8 9↙ a[0][2] is 3 程序运行结果示例2: Input m,n: 3,4↙ Input matrix: 3 4 7 5↙ 0 1 8 2↙ 9 3 2 6↙ No saddle point! 输入提示: \ “Input matrix:\\n\ 输入格式: 输入矩阵大小: \ 输入矩阵元素: \ 输出格式: 找到鞍点的输出格式:\ 没找到鞍点的输出格式:\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include #include int a[100][100],m; int n,i,j,k,max,flag=0,shit=0,l; printf(\); scanf(\,&n,&l); printf(\); for(i=0; i scanf(\,&a[i][j]); for(i=0; i flag=0; m=a[i][0]; for(j=0; j m=a[i][j]; max=j; } for(k=0; k if(a[k][max]<=m && k!=i) { flag=1; break; } } if(flag==0){ printf(\,i,max,m);shit=1;break; } } if (shit==0) printf(\); } 9.4 统计重复字符(4分) 题目内容: 输入一串字符(字符数小于80),以回车表示输入结束,编程计算并输出这串字符中连续重复次数最多的字符和重复次数。如果重复次数最多的字符有两个,则输出最后出现的那一个。 已知函数原型: //函数功能:统计字符串中连续重复次数最多的字符及其重复的次数 //函数参数:str指向待统计的字符串,指针形参tag返回重复字符最后出现的下标位置 //函数返回值:返回字符重复的次数 int CountRepeatStr(char str[], int *tag); 求解思路:设置一个计数器,遍历字符串中的所有字符,若str[i] == str[i+1],则计数器加1,同时判断计数器的值是否大于记录的最大重复次数max,若大于,则用计数器的值更新max,并记录该字符最后出现的位置i+1.若str[i] != str[i+1],则计数器重新初始化为1。遍历结束时,函数返回max的值。 程序运行结果示例1: Input a string: 2344455555↙ 5:5 程序运行结果示例2: Input a string: sgf222257↙ 2:4 输入提示信息:\ 输入格式: 用gets()输入字符串 输出格式:\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include int main() { char a[80]; int b, i,j,t=1,tl,num=0; printf(\); gets(a); for (i=0;i for (j=i+1;j if (i==0){ tl=t; }