近100个C语言基础算法案例(初级篇)

本文提供了多个C语言基础算法案例,包括打印语句、输入输出操作、数学计算、字符处理等,适合初学者实践和理解C语言的基本语法。

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

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

转自:http://www.codeceo.com/article/100-c-programming-code.html

1、C语言打印一条语句

源代码:

/* 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语言打印用户输入的一个整数

源代码:

#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语言实现两个整数相加

源代码:

/*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语言实现两个小数相乘

源代码:

/*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值

源代码:

/* 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语言根据用户输入的整数做商和余数

源代码:

/* 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语言获取整型、单精度浮点型、双精度浮点型和字符型的长度

基本语法是:

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

源代码:

/* 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的长度范围

源代码:

#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语言交换数值

源代码:

#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语言检查数值是奇数还是偶数

源代码:

/*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.

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

/* 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语言检查是元音还是辅音

源代码:

#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.

也可以用条件运算符解决

/* 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:

/* 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:

/* 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:

/* 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语言解一元二次方程

源代码:

/* 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语言检查是否是闰年

源代码:

/* 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语言检查一个数是正数、负数还是零

源代码:

#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语句

/* 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语言检查某字符串是不是字母

源代码:

/* 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

17、C语言计算自然数的和

源代码:

/* This program is solved using while loop. */

#include <stdio.h>
int main()
{
    int n, count, sum=0;
    printf("Enter an integer: ");
    scanf("%d",&n);
    count=1;
    while(count<=n)       /* while loop terminates if count>n */
    {
        sum+=count;       /* sum=sum+count */
        ++count;
    }
    printf("Sum = %d",sum);
    return 0;
}

也可以使用for循环语句

/* This program is solve using for loop. */

#include <stdio.h>
int main()
{
    int n, count, sum=0;
    printf("Enter an integer: ");
    scanf("%d",&n);
    for(count=1;count<=n;++count)  /* for loop terminates if count>n */
    {
        sum+=count;                /* sum=sum+count */
    }
    printf("Sum = %d",sum);
    return 0;
}

输出:

Enter an integer: 100
Sum = 5050

也可以通过if-else语句

/* This program displays error message when user enters negative number or 0 and displays the sum of natural numbers if user enters positive number. */

#include <stdio.h>
int main()
{
    int n, count, sum=0;
    printf("Enter an integer: ");
    scanf("%d",&n);
    if ( n<= 0)
        printf("Error!!!!");
    else
    {
       for(count=1;count<=n;++count)  /* for loop terminates if count>n */
       { 
          sum+=count;                    /* sum=sum+count */
       }
       printf("Sum = %d",sum);
    }
    return 0;
}

18、C语言计算阶乘

对于任意正数n,阶乘指的是:

factorial = 1*2*3*4....n

如果数值是负数,那么阶乘就不存在。并且我们规定,0的阶乘就是1。

源代码:

/* C program to display factorial of an integer if user enters non-negative integer. */

#include <stdio.h>
int main()
{
    int n, count;
    unsigned long long int factorial=1;         
    printf("Enter an integer: ");
    scanf("%d",&n);
    if ( n< 0)
        printf("Error!!! Factorial of negative number doesn't exist.");
    else
    {
       for(count=1;count<=n;++count)    /* for loop terminates if count>n */
       {
          factorial*=count;              /* factorial=factorial*count */
       }
    printf("Factorial = %lu",factorial);
    }
    return 0;
}

输出1:

Enter an integer: -5
Error!!! Factorial of negative number doesn't exist.

输出2:

Enter an integer: 10
Factorial = 3628800
C语言的经典算法。 第一 基础与提高  实1利用库函数编写基本显示程序  实2变量属性  实3运算符与类型  实4关于程序结构  实5显示函数曲线图  实6二分法选代的应用  实7多变的立方体  实8一维整型数组应用(1)  实9一维整型数组应用(2)  实10一维整型数组应用(3)  实11一维整型数组应用(4)  实12二维数组应用(1)——显示杨辉三角  实13二维数组应用(2)——魔方阵  实14字符数组应用(1)——逻辑判断  实15字符数组应用(2)——数据模拟  实16二维数组应用——字符比较   实17利用指针进行数据处理  实18指针与字符串  实19利用指针处理二维数组  实20一级指针  实21利用指针传递参数值  实22结构体的应用  实23链表的应用(1)  实24链表的应用(2)  实25链表的应用(3)  实26共用体的应用  实27枚举类型应用  实28位运算  买29义件加密  实30文件的按记录随机读写 第二 图形与多媒体  实31改变文字背景色  实32及本颜色设置  实33制作表格  实34制作多样的椭圆  实35美丽的透视图形  实36错位窗口  实37能移动的矩形  实38多变的填充矩形  实39黄黑相间的矩形与圆  实40六叶图案  实41特殊图案  实42国际象棋棋盘  实43制作楼梯  实44使用线类型函数设置多个汉字  实45彩色群点  实46饼图  买47产品折线图  实48直方图  实49变大变色的拒形与国  实50多变的填充多边形  实51流星球  实52小球动态碰撞  买倒53多,曲线  实54多变的圆与环  实55优美的球体  实56运动的小车  实57统计动画消失次数  实58运行的时钟  实59直升飞机  实60演绎“生命游戏”  实61猜猜看  买62艺术清屏  买倒63制作火焰  实64动态绘制256条不同颜色的直线  实65红绿蓝三原色渐变 第三 综合小程序  实66两个矩阵相乘  实67艺术钟  实68家庭财务管理小程序  实69用系统时间实现随机数  实70闪动的多彩圆  实71检查系统有无鼠标  实72圆形光盘与矩形  实73动态渐变图案  实74往返两地间的小车  实75飘扬的红旗  实76显示蓝天白云图形  实77百叶窗 第四 计算机等级考试上机试题(二级) 第五 计算机等级考试上机试题(三级)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值