10个经典的C语言面试基础算法及代码 5、简单的加减乘除计算器 源代码:
/* Source code to create a simple calculator for addition, subtraction, multiplication and division using switch...case statement in C programming. */
# include int main() { char o;
float num1,num2;
printf(\"Enter operator either + or - or * or divide : \"); scanf(\"%c\
printf(\"Enter two operands: \"); scanf(\"%f%f\switch(o) { case '+':
printf(\"%.1f + %.1f = %.1f\break; case '-':
printf(\"%.1f - %.1f = %.1f\break; case '*':
printf(\"%.1f * %.1f = %.1f\break; case '/':
printf(\"%.1f / %.1f = %.1f\break;
default:
/* If operator is other than +, -, * or /, error message is shown */
printf(\"Error! operator is not correct\"); break; } return 0; }
结果输出:
Enter operator either + or - or * or divide : - Enter two operands: 3.4 8.4
3.4 - 8.4 = -5.0
6、检查一个数能不能表示成两个质数之和 源代码: #include int prime(int n); int main() {
int n, i, flag=0;
printf(\"Enter a positive integer: \"); scanf(\"%d\for(i=2; i<=n/2; ++i) {
if (prime(i)!=0) {
if ( prime(n-i)!=0) {
printf(\"%d = %d + %d \flag=1;
} } }
if (flag==0)
printf(\"%d can't be expressed as sum of two prime numbers.\
return 0; }
int prime(int n) /* Function to check prime number */ {
int i, flag=1;
for(i=2; i<=n/2; ++i) if(n%i==0) flag=0; return flag; }
结果输出:
Enter a positive integer: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
7、用递归的方式颠倒字符串 源代码:
/* Example to reverse a sentence entered by user without using strings. */
#include void Reverse(); int main() {
printf(\"Enter a sentence: \"); Reverse(); return 0; }
void Reverse() { char c;
scanf(\"%c\if( c != ' ') {
Reverse(); printf(\"%c\} }
结果输出:
Enter a sentence: margorp emosewa awesome program
8、实现二进制与十进制之间的相互转换
/* C programming source code to convert either binary to decimal or decimal to binary according to data entered by user. */
#include #include
int binary_decimal(int n); int decimal_binary(int n); int main() { int n; char c;
printf(\"Instructions: \");
printf(\"1. Enter alphabet 'd' to convert binary to decimal. \"); printf(\"2. Enter alphabet 'b' to convert decimal to binary. \"); scanf(\"%c\if (c =='d' || c == 'D') {
printf(\"Enter a binary number: \"); scanf(\"%d\
printf(\"%d in binary = %d in decimal\}
if (c =='b' || c == 'B') {
printf(\"Enter a decimal number: \"); scanf(\"%d\
printf(\"%d in decimal = %d in binary\} return 0; }
int decimal_binary(int n) /* Function to convert decimal to binary.*/
{
int rem, i=1, binary=0; while (n!=0) {
rem=n%2; n/=2;
binary+=rem*i; i*=10; }
return binary; }
int binary_decimal(int n) /* Function to convert binary to decimal.*/
{
int decimal=0, i=0, rem; while (n!=0) {
rem = n%10; n/=10;
decimal += rem*pow(2,i); ++i; }
return decimal; }
结果输出:
9、使用多维数组实现两个矩阵的相加 源代码: #include int main(){
int r,c,a[100][100],b[100][100],sum[100][100],i,j; printf(\"Enter number of rows (between 1 and 100): \"); scanf(\"%d\
printf(\"Enter number of columns (between 1 and 100): \"); scanf(\"%d\
printf(\" Enter elements of 1st matrix: \");
/* Storing elements of first matrix entered by user. */ for(i=0;i } /* Storing elements of second matrix entered by user. */ printf(\"Enter elements of 2nd matrix: \"); for(i=0;i /*Adding Two matrices */ for(i=0;i 结果输出: 10、矩阵转置 源代码: #include int main() { int a[10][10], trans[10][10], r, c, i, j; printf(\"Enter rows and column of matrix: \"); scanf(\"%d %d\ /* Storing element of matrix entered by user in array a[][]. */ printf(\" Enter elements of matrix: \"); for(i=0; i /* Displaying the matrix a[][] */ printf(\" Entered Matrix: \"); for(i=0; i /* Finding transpose of matrix a[][] and storing it in array trans[][]. */ for(i=0; i /* Displaying the transpose,i.e, Displaying array trans[][]. */ printf(\" Transpose of Matrix: \"); for(i=0; i 结果输出: 【10个经典的C语言面试基础算法及代码】 因篇幅问题不能全部显示,请点此查看更多更全内容