编程实战:高效算法解题技巧
1、输入两个整数序列要求计算并输出两个序列共有元素的和。输入 3 2 -7 9 4 8 -7 6 2 输出 -5#includestdio.h int main(){ int n,i,j; scanf(%d,n); int a[25]; for(i1;in;i){ scanf(%d,a[i]); } int m; scanf(%d,m); int b[25]; for(i1;im;i){ scanf(%d,b[i]); } int sum0; for(i1;in;i){ for(j1;jm;j){ if(a[i]b[j]){ suma[i]; } } } printf(%d,sum); return 0; }2、小陶家的桃子熟了如果购买10斤及以上价格为每斤9元如果购买10斤以下价格为每斤10元。根据桃子的购买重量计算桃子的金额。#includestdio.h int main(){ int n; scanf(%d,n); int price0; if(n0){ if(n10){ pricen*9; } else{ pricen*10; } } printf(%d,price); return 0; }3、乘坐飞机时当乘客行李重量不超过10公斤时可随身携带行李免费。当行李重量超过10公斤时必须办理托运。行李费这样计算如果行李重量大于10公斤且小于等于20公斤时每公斤2元。如果行李重量大于20公斤时每公斤3元。请编程计算行李费。#includestdio.h int main(){ int n; scanf(%d,n); int price; if(n0){ if(n10){ price0; } else{ if(n10 n20){ pricen*2; } else{ pricen*3; } } } printf(%d,price); return 0; }4、给定m行n列的整型数据构成的矩阵m≤20n≤10计算该矩阵中各列元素之和并输出其中的最大值。输入 3 4 1 2 3 4 5 6 7 8 9 10 11 12 输出 24#includestdio.h int main(){ int n,m,i,j; scanf(%d %d,n,m); int a[25][15]; int sum[15]{0}; for(i1;in;i){ for(j1;jm;j){ scanf(%d,a[i][j]); sum[j]a[i][j]; } } int maxsum[1]; for(i1;im;i){ if(sum[i]max)maxsum[i]; } printf(%d,max); return 0; }5、给定m行n列的整型二维数组构成的矩阵m≤20n≤10计算该矩阵中各列元素之和并输出其中的最小值。输入 3 4 1 2 3 4 5 6 7 8 9 10 11 12 输出 15#includestdio.h int main(){ int n,m,i,j; scanf(%d %d,n,m); int a[25][15]; int sum[15]{0}; for(i1;in;i){ for(j1;jm;j){ scanf(%d,a[i][j]); sum[j]a[i][j]; } } int minsum[1]; for(int i1;im;i){ if(sum[i]min)minsum[i]; } printf(%d,min); return 0; }6、给定n位学生m门课程的成绩n20,m10以及分数线。统计并输出总分在分数线以上的学生人数。输入 3 4 72 85 76 91 67 62 68 99 78 71 89 92 300 输出 2#includestdio.h int main(){ int n,m,i,j; scanf(%d %d,n,m); int a[25][15]; int sum[15]{0}; for(i1;in;i){ for(j1;jm;j){ scanf(%d,a[i][j]); sum[i]a[i][j]; } } int score,cnt0; scanf(%d,score); for(i1;in;i){ if(sum[i]score)cnt; } printf(%d,cnt); return 0; }7、输入一个整数序列以及基准要求计算并输出该序列中基准以上的素数个数。素数又称质数是指一个大于1的自然数除了1和它自身外不能被其他自然数整除的数。输入 4 2 3 4 7 5 输出 1#includestdio.h int main(){ int n,i; scanf(%d,n); int a[25]; for(i1;in;i){ scanf(%d,a[i]); } int m,cnt0; scanf(%d,m); for(i1;in;i){ if(i!1||a[i]!i){ if(a[i]%i!0){ if(a[i]m)cnt; } } } printf(%d,cnt); return 0; }8、输入一个整数序列以及基准要求计算并输出该序列中基准以上的完美数之和。完美数是指一个数的所有真约数之和等于它自身。比如6和28。6的真约数有1、2、3且它们之和等于628的真约数有1、2、4、7、14且它们之和等于28。输入 3 6 17 28 28 输出 28#includestdio.h int main(){ int n,i,j; scanf(%d,n); int a[25]; for(i1;in;i){ scanf(%d,a[i]); } int m; scanf(%d,m); int sum0,cnt0; for(int i1;in;i){ if(a[i]m){ for(j1;ja[i];j){ if(a[i]%j0){ sumj; } } if(suma[i])cnta[i]; } } printf(%d,cnt); return 0; }9、给定m位学生n门课程的成绩m≤20n≤10以及达标线。统计并输出各门课程的平均分在达标线以上的学生人数。输入 3 4 72 85 76 91 67 62 68 99 78 71 89 82 75 输出 2#includestdio.h int main(){ int n,m,i,j; scanf(%d %d,n,m); int a[25][15]; int sum[15]{0}; int avg[15]{0}; for(i1;in;i){ for(j1;jm;j){ scanf(%d,a[i][j]); sum[i]a[i][j]; avg[i]sum[i]/m; } } int t,cnt0; scanf(%d,t); for(i1;in;i){ if(avg[i]t)cnt; } printf(%d,cnt); return 0; }