c语言程序设计

PTA|《C语言程序设计(第3版)》习题7-2 求一批整数中出现最多的个位数字 (20分)

两盒软妹~` 提交于 2020-02-08 23:34:34
题目 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。 输入样例: 3 1234 2345 3456 输出样例: 3 : 3 4 参考解答 # include <stdio.h> int main ( ) { int n , i , j , num , max , numsum [ 10 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ; scanf ( "%d" , & n ) ; for ( i = 0 ; i < n ; i ++ ) { scanf ( "%d" , & num ) ; if ( num < 0 ) num = - num ; while ( num != 0 ) { numsum [ num % 10 ] ++ ; num = num / 10 ; } } max = numsum [ 0 ] ; for ( i

PTA|《C语言程序设计(第3版)》习题7-3 判断上三角矩阵 (15分)

我与影子孤独终老i 提交于 2020-02-08 22:30:34
题目 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。 输入样例: 2 3 1 2 3 0 4 5 0 0 6 2 1 0 - 8 2 输出样例: YES NO 参考解答 # include <stdio.h> int judge ( int n , int num [ 10 ] [ 10 ] ) { int i , j , k , ret = 1 ; for ( i = 0 ; i < n ; i ++ ) { for ( j = i - 1 ; j >= 0 ; j -- ) { if ( num [ i ] [ j ] != 0 ) { ret = 0 ; break ; } } } return ret ; } int main ( ) { int T , n , i , j , k ; int num [ 10 ] [ 10 ] ; scanf ( "%d" , & T ) ; for ( i = 0 ;

PTA|《C语言程序设计(第3版)》练习8-2 计算两数的和与差 (10分)

喜夏-厌秋 提交于 2020-02-08 22:04:18
题目 本题要求实现一个计算输入的两数的和与差的简单函数。 函数接口定义: void sum_diff ( float op1 , float op2 , float * psum , float * pdiff ) ; 其中op1和op2是输入的两个实数, psum和 pdiff是计算得出的和与差。 裁判测试程序样例: # include <stdio.h> void sum_diff ( float op1 , float op2 , float * psum , float * pdiff ) ; int main ( ) { float a , b , sum , diff ; scanf ( "%f %f" , & a , & b ) ; sum_diff ( a , b , & sum , & diff ) ; printf ( "The sum is %.2f\nThe diff is %.2f\n" , sum , diff ) ; return 0 ; } /* 你的代码将被嵌在这里 */ 输入样例: 4 6 输出样例: The sum is 10.00 The diff is - 2.00 参考解答 void sum_diff ( float op1 , float op2 , float * psum , float * pdiff ) { * psum =

PTA|《C语言程序设计(第3版)》习题7-4 求矩阵各行元素之和 (15分)

北战南征 提交于 2020-02-08 20:35:34
题目 本题要求编写程序,求一个给定的m×n矩阵各行元素之和。 输入格式: 输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。 输出格式: 每行输出对应矩阵行元素之和。 输入样例: 3 2 6 3 1 - 8 3 12 输出样例 : 9 - 7 15 参考解答 # include <stdio.h> int main ( ) { int m , n , i , j ; int rec [ 6 ] [ 6 ] , sum [ 6 ] = { 0 } ; scanf ( "%d %d" , & m , & n ) ; for ( i = 0 ; i < m ; i ++ ) { for ( j = 0 ; j < n ; j ++ ) { scanf ( "%d" , & rec [ i ] [ j ] ) ; sum [ i ] + = rec [ i ] [ j ] ; } } for ( i = 0 ; i < m ; i ++ ) { printf ( "%d\n" , sum [ i ] ) ; } return 0 ; } 来源: CSDN 作者: 烫烫烫奥特曼 链接: https://blog.csdn.net/weixin_44421292/article/details/104227001

PTA|《C语言程序设计(第3版)》习题7-5 找鞍点 (20分)

天大地大妈咪最大 提交于 2020-02-08 20:24:22
题目 一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。 本题要求编写程序,求一个给定的n阶方阵的鞍点。 输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。 输入样例1: 4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 输出样例1: 2 1 输入样例2: 2 1 7 4 1 输出样例2: NONE 参考解答 # include <stdio.h> int main ( ) { int a [ 6 ] [ 6 ] , i , j , k , n , b [ 6 ] ; scanf ( "%d" , & n ) ; for ( i = 0 ; i < n ; i ++ ) { for ( j = 0 ; j < n ; j ++ ) scanf ( "%d" , & a [ i ] [ j ] ) ; } for ( i = 0 ; i < n ; i ++ ) { b [ i ] = a [ i ] [ 0 ] ; for ( j = 0 ; j < n ; j ++ ) { if ( a [ i ] [ j ] > b [ i ] ) b

C语言寒假大作战02

穿精又带淫゛_ 提交于 2020-02-08 19:30:11
问题 答案 这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-4 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10259 作业正文 使用函数,switch语句来完成菜单程序 参考文献 https://baijiahao.baidu.com/s?id=1616367741584583839&wfr=spider&for=pc 2.2.2 设计思路和遇到的问题 1.设计思路:自定义函数来,用switch()函数来进行选择。 2.问题:没有想到要用循环结构。 2.2.3 程序结果截图 2.2.4 程序代码 #include<stdio.h> #include<stdlib.h> void menu(); void help(); void error(); void one(); void two(); void three(); int main() { int n=1,p; printf("==========口算生成器==========\n"); printf("欢迎使用口算生成器:\n"); printf("\n"); help(); while(n!=0) { menu(); printf("请输入操作> "); scanf(

PTA|《C语言程序设计(第3版)》习题6-1 分类统计字符个数 (15分)

雨燕双飞 提交于 2020-02-08 19:00:50
题目 本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。 函数接口定义: void StringCount ( char s [ ] ) ; 其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照 letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数 的格式输出。 裁判测试程序样例: # include <stdio.h> # define MAXS 15 void StringCount ( char s [ ] ) ; void ReadString ( char s [ ] ) ; /* 由裁判实现,略去不表 */ int main ( ) { char s [ MAXS ] ; ReadString ( s ) ; StringCount ( s ) ; return 0 ; } /* Your function will be put here */ 输入样例: aZ & 09 Az 输出样例: letter = 4 , blank = 3 , digit = 2 , other = 1 参考解答 void StringCount ( char s [ ] ) { int i = 0 , letter = 0 , blank = 0

C语言寒假大作战02

吃可爱长大的小学妹 提交于 2020-02-08 18:39:06
这个作业属于哪个课程 C语言程序设计 这个作业要求在哪里 作业要求 这个作业的目标 初步认识菜单编写 参考文献 百度 2.2.2 设计思路和遇到的问题 头一天看到作业感觉看起来好复杂不想写→该来的总会来还是去研究下→原来就是界面看起来复杂其实只是用了一个while循环和两个函数→scanf放在了while循环中输出值的前面导致一直会出现本来只需要出现一次的输出值。 2.2.3程序结果截图 2.2.4 程序代码 #include<stdio.h> int help(int Z); int error(int R); int help(int Z) { printf("帮助信息\n"); printf("您需要输入命令代号来进行操作, 且\n"); printf("一年级题目为不超过十位的加减法;\n"); printf("二年级题目为不超过百位的乘除法;\n"); printf("三年级题目为不超过百位的加减乘除混合题目.\n"); } int main() { printf("========== 口算生成器 ==========\n"); printf("欢迎使用口算生成器 :\n"); printf("\n"); printf("\n"); printf("帮助信息\n"); printf("您需要输入命令代号来进行操作, 且\n"); printf("一年级题目为加减法;\n

PTA|《C语言程序设计(第3版)》习题4-3 求分数序列前N项和 (15分)

删除回忆录丶 提交于 2020-02-08 16:09:38
题目 本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。 输入样例: 20 输出样例: 32.66 参考解答 # include <stdio.h> int main ( ) { int i , n ; double num , sum = 0 , a = 2 , b = 1 , tmp ; scanf ( "%d" , & n ) ; for ( i = 0 ; i < n ; i ++ ) { num = a / b ; sum + = num ; tmp = a ; a = a + b ; b = tmp ; } printf ( "%.2f" , sum ) ; return 0 ; } 来源: CSDN 作者: 烫烫烫奥特曼 链接: https://blog.csdn.net/weixin_44421292/article/details/104221697

PTA|《C语言程序设计(第3版)》习题4-4 特殊a串数列求和 (20分)

こ雲淡風輕ζ 提交于 2020-02-08 14:38:10
题目 给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。 输入格式: 输入在一行中给出不超过9的正整数a和n。 输出格式: 在一行中按照“s = 对应的和”的格式输出。 输入样例: 2 3 输出样例: s = 246 参考解答 # include <stdio.h> int main ( ) { int a , n , i , sum = 0 , ret = 0 ; scanf ( "%d %d" , & a , & n ) ; for ( i = 0 ; i < n ; i ++ ) { sum = sum * 10 + a ; ret + = sum ; } printf ( "s = %d" , ret ) ; return 0 ; } 来源: CSDN 作者: 烫烫烫奥特曼 链接: https://blog.csdn.net/weixin_44421292/article/details/104221715