int main() { int a[10] = { 0 }; int rtn = 0; long int n; printf(\ scanf(\
rtn = CountRepeatNum(a,n); if (rtn!=-1) printf(\ else printf(\ return 0; }
2教授的课(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=0,j=0; for(i=0;i if (a[i]<=0) { j++; } } if (j return 1; } else { return 0; } } int main() { int n = 0,k =0,i; int studentNum[N]; int temp,rtn; printf(\ scanf(\ for(i=0;i scanf(\ studentNum[i] = temp; } rtn = IsCancel(studentNum,n,k); if (rtn==1) printf(\ else printf(\ return 0; } 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 int i,j,k,a[100][100],max,maxj,flag; int m,n; printf(\ scanf(\ printf(\ for(i=0;i scanf(\ for(i=0;i max=a[i][0]; maxj=0; for(j=0;j max=a[i][j]; maxj=j; } flag=1; for(k=0;k flag=0; break; } if(flag) { printf(\ break; } } if(!flag) printf(\ return 0; } 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 CountRepeatStr(char str[], int *tag) { int i=0; int max = 1; int count = 1; for(i = 0;i if (str[i]==str[i+1]) { count++; } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国大学C语言程序题(7)在线全文阅读。
相关推荐: