原因:未用MarkDown编辑器编写,容易乱码。
前言
在vs2022的编译环境中不能调用scanf函数,只能调用scanf_s函数用于输入
For语句中的间隔用分号“;”例如for(i=1;i<=n;i++)
scanf_s后边对应的数值应该取址符“&”
一.初识C源程序及其数据类型
例1.1 编写一个程序,实现从键盘输入两个整数,计算并输出两者乘积。
#include <stdio.h>
int multiply(int a,int b ) 即用户自定义函数 multiply(int a,int b)
{ 定义函数功能为 return (a*b)
return (a * b);
}
int main() 有且仅有一个main函数
{
int x, y, product; printf("please input two integers:"); scanf_s(" % d % d", &x, &y); 将转换后的数据送到变量地址列表所对应的变量中 product = multiply(x , y); 调用用户自定义函数multiply printf("The product is %d\n", product); return 0; 无返回值
}
可修改为
#include<stdio.h>
int main()
{
int x, y, product; printf("please input two integers:"); scanf_s("%d%d", &x, &y); product = x * y; printf("The product is %d\n", product); return 0;
}
例 1.2 日期格式转换
#include<stdio.h>
int main()
{
int year, month, day; printf("请按标准格式输入一个日期(YYYY-MM-DD):"); scanf_s("%d-%d-%d", &year, &month, &day); printf("中国日期格式:%d年%d月%d日\n",year,month,day); printf("美国日期格式:%d/%d/%d\n", month, day, year); printf("英国日期格式:%d/%d/%d\n", day, month, year); return 0;
}
例1.3作业等级的输入和输出
#include <stdio.h>
int main()
{
char grade1, grade2; <变量>=getchar(); grade1 = getchar(); 函数getchar用于从键盘读入一个用户输入的字符 getchar(); getchar()表示系统从输入缓冲区提取一个的字符但不赋给任何变量 grade2 = getchar(); putchar(<参数>); printf("The first grade is:");函数putchar是将给定的参数以单个字符的形式输出到显示器 putchar(grade1); 屏幕的当前位置上,其参数可以是字符常量、变量或表达式 putchar('\n'); printf("The second grade is:"); putchar(grade2); putchar('\n'); return 0;
}
例1.4计算圆的面积和周长
#include <stdio.h>
int main()
{
const double pi = 3.14159; const <数据类型><只读变量名>; 变量初始化 double r; 用const修饰符限定只读变量 增加了程序的可读性、 scanf_s("%lf", &r); 方便了程序的维护、增强了程序的正确性并减少误操作 printf("area=%.2f\n", pi * r * r); 计算圆的面积并输出 printf("permeter=%.2f\n", 2 * pi * r); 计算圆的周长并输出 return 0;
}
二.运算符与表达式
例2.1计算抛物运动的射程
#include <stdio.h>
#include <math.h> 引用数学函数 #include<stdio.h>;
int main()
{
const double pi = 3.14159; const <数据类型> <只读变量名>; const double g = 9.80; 用于定义只读变量 double v0; int theta; double R; printf("Please input v0 (m/s) and theta (degree):\n"); scanf_s("%lf%d", &v0, &theta); R = v0 * v0 * sin(2 * theta / 180.0 * pi)/g; C语言中sin函数的参数是弧度制 printf("The range is:%.2f (m)\n", R); 需要用pi将theta从角度制转换 return 0; 成弧度制。
}
例2.2验证丢番图的规则
#include <stdio.h>
#include <math.h>
int main()
{
int a, b; int x, y, z; int t; printf("please input a and b:"); scanf_s("%d%d", &a, &b); t = (int)sqrt(2 * a * b); printf("a=%d,b=%d\n", a, b); printf("2ab %s a perfect square number\n", t * t == 2 * a * b ? "is" : "is NOT"); x = a + t; y = b + t; z = a + b + t; printf("x=%d,y=%d,z=%d\n", x, y, z); printf("(%d,%d,%d) %s a solution of the Pythagorean Theorem equation\n", x, y, z, x * x + y * y == z * z ? "is" : "is NOT"); return 0;
}