C语言实例
程序员文章站
2024-03-07 16:50:57
...
1:输出 "Hello, World!"
使用printf()
输出 "Hello, World!"
。
#include <stdio.h>
int main()
{
// printf() 中字符串需要引号
printf("Hello, World!");
return 0;
}
输出:
Hello, World!
2:输出整数
使用printf()
与 %d
格式化输出整数。
#include <stdio.h>
int main()
{
int number;
// printf() 输出字符串
printf("输入一个整数: ");
// scanf() 格式化输入
scanf("%d", &number);
// printf() 显示格式化输入
printf("你输入的整数是: %d", number);
return 0;
}
输出:
输入一个整数: 45
你输入的整数是: 45
3:输出单个字符
使用printf()
与%c
格式化输出一个字符。
#include <stdio.h>
int main() {
char c; // 声明 char 变量
c = 'A'; // 定义 char 变量
printf("c 的值为 %c", c);
return 0;
}
输出:
c 的值为 A
4:输出浮点数
使用printf()
与%f
输出浮点数。
#include <stdio.h>
int main() {
float f; // 声明浮点数变量
f = 12.001234; // 定义浮点数变量
printf("f 的值为 %f", f);
return 0;
}
输出:
f 的值为 12.001234
5:输出双精度(double)数
#include <stdio.h>
int main() {
double d; // 声明双精度变量
d = 12.001234; // 定义双精度变量
printf("d 的值为 %le", d);
return 0;
}
输出:
d 的值为 1.200123e+01
6:两个整数相加
使用 scanf()
来接收输入, printf()
与 %d
格式化输出整数。
#include <stdio.h>
int main()
{
int firstNumber, secondNumber, sumOfTwoNumbers;
printf("输入两个数(以空格分割): ");
// 通过 scanf() 函数接收用户输入的两个整数
scanf("%d %d", &firstNumber, &secondNumber);
// 两个数字相加
sumOfTwoNumbers = firstNumber + secondNumber;
// 输出结果
printf("%d + %d = %d", firstNumber, secondNumber, sumOfTwoNumbers);
return 0;
}
输出:
输入两个数(以空格分割): 1 2
1 + 2 = 3
7:两个浮点数相乘
输入两个浮点数,计算乘积。
#include <stdio.h>
int main()
{
double firstNumber, secondNumber, product;
printf("输入两个浮点数: ");
// 用户输入两个浮点数
scanf("%lf %lf", &firstNumber, &secondNumber);
// 两个浮点数相乘
product = firstNumber * secondNumber;
// 输出结果, %.2lf 保留两个小数点
printf("结果 = %.2lf", product);
return 0;
}
输出:
输入两个浮点数: 1.2 2.345
结果 = 2.81
8:字符转 ASCII 码
ASCII 定义了 128 个字符。
#include <stdio.h>
int main()
{
char c;
printf("输入一个字符: ");
// 读取用户输入
scanf("%c", &c);
// %d 显示整数
// %c 显示对应字符
printf("%c 的 ASCII 为 %d", c, c);
return 0;
}
输出:
输入一个字符: a
a 的 ASCII 为 97
9:两数相除
两数相除,如果有余数,输出余数。
#include <stdio.h>
int main(){
int dividend, divisor, quotient, remainder;
printf("输入被除数: ");
scanf("%d", ÷nd);
printf("输入除数: ");
scanf("%d", &divisor);
// 计算商
quotient = dividend / divisor;
// 计算余数
remainder = dividend % divisor;
printf("商 = %d\n", quotient);
printf("余数 = %d", remainder);
return 0;
}
输出:
输入被除数: 5
输入除数: 2
商 = 2
余数 = 1
10:数值比较
1、比较两个数
以下实例中定义了两个整数变量,并使用 if 来比较两个数值
#include <stdio.h>
int main() {
int a, b;
a = 11;
b = 99;
// 也可以通过以下代码实现让用户在终端输入两个数
// printf("输入第一个值:");
// scanf("%d", &a);
// printf("输入第二个值:");
// scanf("%d", &b);
if(a > b)
printf("a 大于 b");
else
printf("a 小于等于 b");
return 0;
}
输出:
a 小于等于 b
2、比较三个数
以下实例中定义了两个整数变量,并使用 if 来比较三个数值
#include <stdio.h>
int main() {
int a, b, c;
a = 11;
b = 22;
c = 33;
if ( a > b && a > c )
printf("%d 最大", a);
else if ( b > a && b > c )
printf("%d 最大", b);
else if ( c > a && c > b )
printf("%d 最大", c);
else
printf("有两个或三个数值相等");
return 0;
}
输出:
33 最大
11:计算 int, float, double 和 char 字节大小
#include <stdio.h>
int main()
{
int integerType;
float floatType;
double doubleType;
char charType;
// sizeof 操作符用于计算变量的字节大小
printf("Size of int: %ld bytes\n",sizeof(integerType));
printf("Size of float: %ld bytes\n",sizeof(floatType));
printf("Size of double: %ld bytes\n",sizeof(doubleType));
printf("Size of char: %ld byte\n",sizeof(charType));
return 0;
}
输出:
Size of int: 4 bytes
Size of float: 4 bytes
Size of double: 8 bytes
Size of char: 1 byte
12:计算 long long, long double 字节大小
#include <stdio.h>
int main()
{
int a;
long b;
long long c;
double e;
long double f;
printf("Size of int = %ld bytes \n", sizeof(a));
printf("Size of long = %ld bytes\n", sizeof(b));
printf("Size of long long = %ld bytes\n", sizeof(c));
printf("Size of double = %ld bytes\n", sizeof(e));
printf("Size of long double = %ld bytes\n", sizeof(f));
return 0;
}
输出:
Size of int = 4 bytes
Size of long = 8 bytes
Size of long long = 8 bytes
Size of double = 8 bytes
Size of long double = 16 bytes
13:交换两个数的值
1、使用临时变量
以下实例演示了交换两个浮点数的值。
#include <stdio.h>
int main()
{
double firstNumber, secondNumber, temporaryVariable;
printf("输入第一个数字: ");
scanf("%lf", &firstNumber);
printf("输入第二个数字: ");
scanf("%lf",&secondNumber);
// 将第一个数的值赋值给 temporaryVariable
temporaryVariable = firstNumber;
// 第二个数的值赋值给 firstNumber
firstNumber = secondNumber;
// 将 temporaryVariable 赋值给 secondNumber
secondNumber = temporaryVariable;
printf("\n交换后, firstNumber = %.2lf\n", firstNumber);
printf("交换后, secondNumber = %.2lf", secondNumber);
return 0;
}
输出:
输入第一个数字: 1
输入第二个数字: 2
交换后, firstNumber = 2.00
交换后, secondNumber = 1.00
2、不使用临时变量
不使用临时变量交换两个整数的值:
#include <stdio.h>
int main() {
int a, b;
a = 11;
b = 99;
printf("交换之前 - \n a = %d, b = %d \n\n", a, b);
a = a + b; // ( 11 + 99 = 110) 此时 a 的变量为两数之和,b 未改变
b = a - b; // ( 110 - 99 = 11)
a = a - b; // ( 110 - 11 = 99)
printf("交换后 - \n a = %d, b = %d \n", a, b);
}
输出:
交换之前 -
a = 11, b = 99
交换后 -
a = 99, b = 11
14:判断奇数/偶数
以下实例判断用户输入的整数是奇数还是偶数。
#include <stdio.h>
int main()
{
int number;
printf("请输入一个整数: ");
scanf("%d", &number);
// 判断这个数除以 2 的余数
if(number % 2 == 0)
printf("%d 是偶数。", number);
else
printf("%d 是奇数。", number);
return 0;
}
输出:
请输入一个整数: 5
5 是奇数。
15:循环区间范围内的奇数/偶数
循环输出区间范围内的奇数/偶数可以通过除于 2 的余数来判断。
以下实例通过循环输出指定区间范围的偶数。
#include <stdio.h>
int main() {
int i;
for(i = 1; i <= 10; i++) {
if(i%2 == 0)
printf(" %2d\n", i);
}
return 0;
}
输出:
2
4
6
8
10
以下实例通过循环输出指定区间范围的奇数。
#include <stdio.h>
int main() {
int i;
for(i = 1; i <= 10; i++) {
if(i%2 != 0)
printf("%d\n", i);
}
return 0;
}
输出:
1
3
5
7
9
16:判断元音/辅音
判断输入的字母是元音,还是辅音。
英语有26个字母,元音只包括 a、e、i、o、u 这五个字母,其余的都为辅音。y是半元音、半辅音字母,但在英语中都把他当作辅音。
#include <stdio.h>
int main()
{
char c;
int isLowercaseVowel, isUppercaseVowel;
printf("输入一个字母: ");
scanf("%c",&c);
// 小写字母元音
isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
// 大写字母元音
isUppercaseVowel = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
// if 语句判断
if (isLowercaseVowel || isUppercaseVowel)
printf("%c 是元音", c);
else
printf("%c 是辅音", c);
return 0;
}
输出:
输入一个字母: G
G 是辅音
17:判断三个数中的最大数
通过屏幕我们输入三个数字,并找出最大的数。
#include <stdio.h>
int main()
{
double n1, n2, n3;
printf("请输入三个数,以空格分隔: ");
scanf("%lf %lf %lf", &n1, &n2, &n3);
if( n1>=n2 && n1>=n3 )
printf("%.2f 是最大数。", n1);
if( n2>=n1 && n2>=n3 )
printf("%.2f 是最大数。", n2);
if( n3>=n1 && n3>=n2 )
printf("%.2f 是最大数。", n3);
return 0;
}
输出:
请输入三个数,以空格分隔: 1 2 3
3.00 是最大数。
18:一元二次方程
求一元二次方程:ax2+bx+c=0 的根。
输入三个实数a,b,c的值,且a不等于0。
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,x1,x2,d;
printf("输入方程的三个系数:");
scanf("%f %f %f",&a,&b,&c);
if(a!=0)
{
d=sqrt(b*b-4*a*c);
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
if(x1<x2)
printf("%0.2f %0.2f\n",x2,x1);
else
printf("%0.2f %0.2f\n",x1,x2);
}
return 0;
}
输出:
输入方程的三个系数:1 2 1
-1.00 -1.00
19:判断闰年
用户输入年份,判断该年份是否为闰年。
#include <stdio.h>
int main()
{
int year;
printf("输入年份: ");
scanf("%d",&year);
if(year%4 == 0)
{
if( year%100 == 0)
{
// 这里如果被 400 整数是闰年
if ( year%400 == 0)
printf("%d 是闰年", year);
else
printf("%d 不是闰年", year);
}
else
printf("%d 是闰年", year );
}
else
printf("%d 不是闰年", year);
return 0;
}
输出:
输入年份: 1990
1990 不是闰
20:判断正数/负数
用户输入一个数字,判断该数字是正数还是负数或是零。
#include <stdio.h>
int main()
{
double number;
printf("输入一个数字: ");
scanf("%lf", &number);
if (number <= 0.0)
{
if (number == 0.0)
printf("你输入的是 0。");
else
printf("你输入的是负数。");
}
else
printf("你输入的是正数。");
return 0;
}
输出:
输入一个数字: 9
你输入的是正数。
21:判断字母
用户输入一个字符,判断该字符是否为一个字母。
#include <stdio.h>
int main()
{
char c;
printf("输入一个字符: ");
scanf("%c",&c);
if( (c>='a' && c<='z') || (c>='A' && c<='Z'))
printf("%c 是字母",c);
else
printf("%c 不是字母",c);
return 0;
}
输出:
输入一个字符: a
a 是字母
22:计算自然数的和
自然数是指表示物体个数的数,即由0开始,0,1,2,3,4,……一个接一个,组成一个无穷的集体,即指非负整数。
实例 - 使用 for
#include <stdio.h>
int main()
{
int n, i, sum = 0;
printf("输入一个正整数: ");
scanf("%d",&n);
for(i=1; i <= n; ++i)
{
sum += i; // sum = sum+i;
}
printf("Sum = %d",sum);
return 0;
}
实例 - 使用 while
#include <stdio.h>
int main()
{
int n, i, sum = 0;
printf("输入一个正整数: ");
scanf("%d",&n);
i = 1;
while ( i <=n )
{
sum += i;
++i;
}
printf("Sum = %d",sum);
return 0;
}
输出:
输入一个正整数: 100
Sum = 5050
实例 - 使用递归
#include <stdio.h>
int addNumbers(int n);
int main()
{
int num;
printf("输入一个整数: ");
scanf("%d", &num);
printf("Sum = %d",addNumbers(num));
return 0;
}
int addNumbers(int n)
{
if(n != 0)
return n + addNumbers(n-1);
else
return n;
}
23:输出九九乘法口诀表
使用嵌套 for 循环输出九九乘法口诀表。
#include<stdio.h>
int main(){
//外层循环变量,控制行
int i = 0;
//内层循环变量,控制列
int j = 0;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf("%dx%d=%d\t",j,i,i*j);
}
//每行输出完后换行
printf("\n");
}
}
输出:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
24:
输出:
25:
输出:
26:
输出:
27:
输出:
28:
输出:
29:
输出:
30:
输出:
上一篇: Dagger2 小记