分享

c语言的一些初级算法

 承诺程序员之家 2016-07-01

下面这些C语言基础算法案例都是经过测试和验证过了的,欢迎各位使用。

本文是该系列的第一篇,都是一些相对初级的算法,很适合刚开始学C语言的同学。

1、C语言打印一条语句

源代码:

1234567/* C Program to print a sentence. */#include <stdio.h>int main(){ printf("C Programming"); /* printf() prints the content inside quotation */ return 0;}

输出:

C Programming

2、C语言打印用户输入的一个整数

源代码:

123456789#include <stdio.h>int main(){ int num; printf("Enter a integer: "); scanf("%d",&num); /* Storing a integer entered by user in variable num */ printf("You entered: %d",num); return 0;}

输出:

Enter a integer: 25

You entered: 25

3、C语言实现两个整数相加

源代码:

12345678910111213/*C programming source code to add and display the sum of two integers entered by user */#include <stdio.h>int main( ){ int num1, num2, sum; printf("Enter two integers: "); scanf("%d %d",&num1,&num2); /* Stores the two integer entered by user in variable num1 and num2 */ sum=num1+num2; /* Performs addition and stores it in variable sum */ printf("Sum: %d",sum); /* Displays sum */ return 0;}

输出:

Enter two integers: 12

11

Sum: 23

4、C语言实现两个小数相乘

源代码:

123456789101112/*C program to multiply and display the product of two floating point numbers entered by user. */#include <stdio.h>int main( ){ float num1, num2, product; printf("Enter two numbers: "); scanf("%f %f",&num1,&num2); /* Stores the two floating point numbers entered by user in variable num1 and num2 respectively */ product = num1*num2; /* Performs multiplication and stores it */ printf("Product: %f",product); return 0;}

输出:

Enter two numbers: 2.4

1.1

Product: 2.640000

5、C语言查找字符的ASCII值

源代码:

12345678910/* Source code to find ASCII value of a character entered by user */#include <stdio.h>int main(){ char c; printf("Enter a character: "); scanf("%c",&c); /* Takes a character from user */ printf("ASCII value of %c = %d",c,c); return 0;}

输出:

Enter a character: G

ASCII value of G = 71

6、C语言根据用户输入的整数做商和余数

源代码:

123456789101112131415/* C Program to compute remainder and quotient */#include <stdio.h>int main(){ int dividend, divisor, quotient, remainder; printf("Enter dividend: "); scanf("%d",&dividend); printf("Enter divisor: "); scanf("%d",&divisor); quotient=dividend/divisor; /* Computes quotient */ remainder=dividend%divisor; /* Computes remainder */ printf("Quotient = %d\n",quotient); printf("Remainder = %d",remainder); return 0;}

输出:

Enter dividend: 25

Enter divisor: 4

Quotient = 6

Remainder = 1

7、C语言获取整型、单精度浮点型、双精度浮点型和字符型的长度

基本语法是:

123temp = sizeof(operand);/* Here, temp is a variable of type integer,i.e, sizeof() operator returns integer value. */

源代码:

1234567891011121314/* This program computes the size of variable using sizeof operator.*/#include <stdio.h>int main(){ int a; float b; double c; char d; printf("Size of int: %d bytes\n",sizeof(a)); printf("Size of float: %d bytes\n",sizeof(b)); printf("Size of double: %d bytes\n",sizeof(c)); printf("Size of char: %d byte\n",sizeof(d)); return 0;}

输出:

Size of int: 4 bytes

Size of float: 4 bytes

Size of double: 8 bytes

Size of char: 1 byte

注:可能会由于系统的不同出来的结果也不尽相同。

8、C语言获取关键字long的长度范围

源代码:

12345678910#include <stdio.h>int main(){ int a; long int b; /* int is optional. */ long long int c; /* int is optional. */ printf("Size of int = %d bytes\n",sizeof(a)); printf("Size of long int = %ld bytes\n",sizeof(b)); printf("Size of long long int = %ld bytes",sizeof(c)); return 0;}

输出:

Size of int = 4 bytes

Size of long int = 4 bytes

Size of long long int = 8 bytes

9、C语言交换数值

源代码:

1234567891011121314#include <stdio.h>int main(){ float a, b, temp; printf("Enter value of a: "); scanf("%f",&a); printf("Enter value of b: "); scanf("%f",&b); temp = a; /* Value of a is stored in variable temp */ a = b; /* Value of b is stored in variable a */ b = temp; /* Value of temp(which contains initial value of a) is stored in variable b*/ printf("\nAfter swapping, value of a = %.2f\n", a); printf("After swapping, value of b = %.2f", b); return 0;}

输出:

Enter value of a: 1.20

Enter value of b: 2.45

After swapping, value of a = 2.45

After swapping, value of b = 1.2

10、C语言检查数值是奇数还是偶数

源代码:

12345678910111213/*C program to check whether a number entered by user is even or odd. */#include <stdio.h>int main(){ int num; printf("Enter an integer you want to check: "); scanf("%d",&num); if((num%2)==0) /* Checking whether remainder is 0 or not. */ printf("%d is even.",num); else printf("%d is odd.",num); return 0;}

输出1:

Enter an integer you want to check: 25

25 is odd.

输出2:

Enter an integer you want to check: 12

12 is even.

也可以用条件运算符解决:

12345678910/* C program to check whether an integer is odd or even using conditional operator */#include <stdio.h>int main(){ int num; printf("Enter an integer you want to check: "); scanf("%d",&num); ((num%2)==0) ? printf("%d is even.",num) : printf("%d is odd.",num); return 0;}

11、C语言检查是元音还是辅音

源代码:

1234567891011#include <stdio.h>int main(){ char c; printf("Enter an alphabet: "); scanf("%c",&c); if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U') printf("%c is a vowel.",c); else printf("%c is a consonant.",c); return 0;}

输出1:

Enter an alphabet: i

i is a vowel.

输出2:

Enter an alphabet: G

G is a consonant.

也可以用条件运算符解决

12345678910/* C program to check whether a character is vowel or consonant using conditional operator */#include <stdio.h>int main(){ char c; printf("Enter an alphabet: "); scanf("%c",&c); (c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U') ? printf("%c is a vowel.",c) : printf("%c is a consonant.",c); return 0;}

输出结果和上面的程序相同。

12、C语言实现从三个数值中查找最大值

实现1:

123456789101112131415/* C program to find largest number using if statement only */#include <stdio.h>int main(){ float a, b, c; printf("Enter three numbers: "); scanf("%f %f %f", &a, &b, &c); if(a>=b && a>=c) printf("Largest number = %.2f", a); if(b>=a && b>=c) printf("Largest number = %.2f", b); if(c>=a && c>=b) printf("Largest number = %.2f", c); return 0;}

实现2:

1234567891011121314151617181920212223/* C program to find largest number using if...else statement */#include <stdio.h>int main(){ float a, b, c; printf("Enter three numbers: "); scanf("%f %f %f", &a, &b, &c); if (a>=b) { if(a>=c) printf("Largest number = %.2f",a); else printf("Largest number = %.2f",c); } else { if(b>=c) printf("Largest number = %.2f",b); else printf("Largest number = %.2f",c); } return 0;}

实现3:

123456789101112131415/* C Program to find largest number using nested if...else statement */#include <stdio.h>int main(){ float a, b, c; printf("Enter three numbers: "); scanf("%f %f %f", &a, &b, &c); if(a>=b && a>=c) printf("Largest number = %.2f", a); else if(b>=a && b>=c) printf("Largest number = %.2f", b); else printf("Largest number = %.2f", c); return 0;}

输出结果相同:

Enter three numbers: 12.2

13.452

10.193

Largest number = 13.45

13、C语言解一元二次方程

源代码:

123456789101112131415161718192021222324252627282930/* Program to find roots of a quadratic equation when coefficients are entered by user. *//* Library function sqrt() computes the square root. */#include <stdio.h>#include <math.h> /* This is needed to use sqrt() function.*/int main(){ float a, b, c, determinant, r1,r2, real, imag; printf("Enter coefficients a, b and c: "); scanf("%f%f%f",&a,&b,&c); determinant=b*b-4*a*c; if (determinant>0) { r1= (-b+sqrt(determinant))/(2*a); r2= (-b-sqrt(determinant))/(2*a); printf("Roots are: %.2f and %.2f",r1 , r2); } else if (determinant==0) { r1 = r2 = -b/(2*a); printf("Roots are: %.2f and %.2f", r1, r2); } else { real= -b/(2*a); imag = sqrt(-determinant)/(2*a); printf("Roots are: %.2f+%.2fi and %.2f-%.2fi", real, imag, real, imag); } return 0;}

输出1:

Enter coefficients a, b and c: 2.3

4

5.6

Roots are: -0.87+1.30i and -0.87-1.30i

输出2:

Enter coefficients a, b and c: 4

1

0

Roots are: 0.00 and -0.25

14、C语言检查是否是闰年

源代码:

1234567891011121314151617181920212223/* C program to check whether a year is leap year or not using if else statement.*/#include <stdio.h>int main(){ int year; printf("Enter a year: "); scanf("%d",&year); if(year%4 == 0) { if( year%100 == 0) /* Checking for a century year */ { if ( year%400 == 0) printf("%d is a leap year.", year); else printf("%d is not a leap year.", year); } else printf("%d is a leap year.", year ); } else printf("%d is not a leap year.", year); return 0;}

输出1:

Enter year: 2000

2000 is a leap year.

输出2:

Enter year: 1900

1900 is not a leap year.

输出3:

Enter year: 2012

2012 is a leap year.

15、C语言检查一个数是正数、负数还是零

源代码:

1234567891011121314151617#include <stdio.h>int main(){ float num; printf("Enter a number: "); scanf("%f",&num); if (num<=0) { if (num==0) printf("You entered zero."); else printf("%.2f is negative.",num); } else printf("%.2f is positive.",num); return 0;}

也可以使用if-else语句

12345678910111213141516/* C programming code to check whether a number is negative or positive or zero using nested if...else statement. */#include <stdio.h>int main(){ float num; printf("Enter a number: "); scanf("%f",&num); if (num<0) /* Checking whether num is less than 0*/ printf("%.2f is negative.",num); else if (num>0) /* Checking whether num is greater than zero*/ printf("%.2f is positive.",num); else printf("You entered zero."); return 0;}

输出1:

Enter a number: 12.3

12.30 is positive.

输出2:

Enter a number: -12.3

-12.30 is negative.

输出3:

Enter a number: 0

You entered zero.

16、C语言检查某字符串是不是字母

源代码:

1234567891011121314/* C programming code to check whether a character is alphabet or not.*/#include <stdio.h>int main(){ char c; printf("Enter a character: "); scanf("%c",&c); if( (c>='a'&& c<='z') || (c>='A' && c<='Z')) printf("%c is an alphabet.",c); else printf("%c is not an alphabet.",c); return 0;}

输出1:

Enter a character: *

* is not an alphabet

输出2:

Enter a character: K

K is an alphabet

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多