企业网站备案需要,wordpress 加盟 主题,广告设计主要做什么,网站开发留言板代码实验名称
实验四 数组和函数
实验目的
#xff08;1#xff09;掌握一维、二维数组以及字符数组的定义、元素引用和编程方法。
#xff08;2#xff09;掌握字符串常用程序的设计方法。
#xff08;3#xff09;掌握函数定义和调用的方法#xff0c;以及函数参数传…实验名称
实验四 数组和函数
实验目的
1掌握一维、二维数组以及字符数组的定义、元素引用和编程方法。
2掌握字符串常用程序的设计方法。
3掌握函数定义和调用的方法以及函数参数传递的方式。
4理解变量的作用域及生存期。
实验题目
编写程序计算Fibonacci数列的前40项。要求每行输出4个数从键盘上输入一个3×4的整数矩阵找出其中最大值和最小值记录它们的行号和列号并输出。编写程序将2个字符串连接起来不使用strcat函数并输出。编程实现一个具有,-,×,÷,%运算功能的简单计算器。通过函数实现任意输入2个整数编写2个函数分别求这2个整数的最大公约数和最小公倍数结果在主函数中输出。
实验环境
硬件个人电脑软件Visual C 6.0
实验代码及结果程序运行结果请以截屏图给出
源程序代码 #include stdio.h int main() { int fibonacci[40]; fibonacci[0] 0; fibonacci[1] 1; for (int i 2; i 40; i) fibonacci[i] fibonacci[i - 1] fibonacci[i - 2]; for (int i 0; i 40; i) { printf(%d , fibonacci[i]); if ((i 1) % 4 0) // 使用 (i 1) % 4 来判断是否是每行的最后一个数字 printf(\n); } return 0; } 运行结果为 源程序代码 #include stdio.h #include limits.h int main() { int matrix[3][4]; int max_value INT_MIN, min_value INT_MAX; int max_row, max_col, min_row, min_col; printf(请输入一个3x4的整数矩阵\n); for (int i 0; i 3; i) { for (int j 0; j 4; j) { scanf(%d, matrix[i][j]); // 更新最大值和最小值及其位置 if (matrix[i][j] max_value) { max_value matrix[i][j]; max_row i; max_col j; } if (matrix[i][j] min_value) { min_value matrix[i][j]; min_row i; min_col j; } } } printf(最大值%d位置(%d, %d)\n, max_value, max_row, max_col); printf(最小值%d位置(%d, %d)\n, min_value, min_row, min_col); return 0; } 运行结果为 源程序代码 #include stdio.h int main() { char str1[100] Hello, ; char str2[] World!; int i 0, j 0; // 找到str1的末尾 while (str1[i] ! \0) i; // 将str2的字符逐个复制到str1的末尾 while (str2[j] ! \0) { str1[i] str2[j]; i; j; } // 在str1的末尾添加字符串结束符\0 str1[i] \0; // 输出连接后的字符串 printf(%s\n, str1); return 0; } 运行结果为 源程序代码 #include stdio.h double add(double a, double b) { return a b; } double subtract(double a, double b) { return a - b; } double multiply(double a, double b) { return a * b; } double divide(double a, double b) { return a / b; } int modulus(int a, int b) { return a % b; } // 主函数 int main() { char operator; double num1, num2; double result; printf(请输入一个算式\n); scanf(%lf %c %lf, num1, operator, num2); // 根据运算符执行相应的运算 switch (operator) { case : result add(num1, num2); break; case -: result subtract(num1, num2); break; case *: result multiply(num1, num2); break; case /: result divide(num1, num2); break; case %: // 执行取模运算 result modulus(num1, num2); break; default: printf(错误无效的运算符。\n); return 1; // 返回非零值表示程序异常终止 } // 输出其他运算的结果 printf(结果%.2lf %c %.2lf %.2lf\n, num1, operator, num2, result); return 0; } 运行结果为 源程序代码 #include stdio.h // 求最大公约数的递归函数辗转相除法 int gcd(int a, int b) { if (b 0) return a; else return gcd(b, a % b); } // 求最小公倍数的函数利用GCD int lcm(int a, int b, int gcd_result) { return (a * b) / gcd_result; } // 主函数 int main() { int num1, num2; int gcd_result, lcm_result; // 输入两个整数 printf(请输入两个整数\n); scanf(%d %d, num1, num2); // 计算最大公约数使用递归辗转相除法 gcd_result gcd(num1, num2); // 计算最小公倍数 lcm_result lcm(num1, num2, gcd_result); printf(最大公约数%d\n, gcd_result); printf(最小公倍数%d\n, lcm_result); return 0; } 运行结果为 六、实验心得请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结