编程细节以及条件语句与循环语句嵌套

编程细节以及条件语句与循环语句嵌套

*常量与字符串常量(char)

%s表示输出一串字符串

字符常量‘a’ 字符串常量“a”

每个字符串结尾,编译器会自动添加结束标志位\0,即“a”包含两个字符“a”与\0

printf 输出一个字符串
putchar 输出一个char (专门)

用于char printf(“%c\n”,a);
等于 putchar(a)或者(97)ASCII码; 表示相同输出a
putchar() 括号内可以输入转义字符(‘……’),变量,数字,字符(但必须在ASCII范围内)

%d int 有符号 十进制
%f 单精度 float
%lf 双精度 double
%c 字符型 转为ASCII码 char
%s 字符串 输出字符串中的字符至字符串中的空字符(字符串以‘\0’结尾,‘\0’为空字符 )
%p 以十六进制输出指针 void
%% 输出一个百分号
%t 将光标当前位置向下一个 tab(8个字)后置(水平制表符)

eg1

int a=10;
printf("%-5d\n",a); 表示10_ _ ,10后面空3格包含10两位凑5位,负号表示加0到后面
eg2
int a=10;
printf("%5d\n",a); 表示10printf("%5d\n",a); 表示
_ _10,10前面空3格包含10两位凑5位

float a=3.14;

eg(浮点型)

printf("%7.2f\n",a); 表示(7表示整体长度7位)(.2表示小数点后几位)
输出 0003.14

char类型 getchar与scanf

eg

char a=123456
printf("%d\t%d",a,b); 表示输出a_ _ _ _ _ _ _ _b(之间空8格\t)
printf("%3d",a); 表示输出123_456

ch=getchar()与scanf只接受键盘获取的字符 ()内不做添加
gerchar 有暂时停留界面作用

整型相除比为整型
取余数 % 只能对整型操作

a++ 表示后自增 (先表达式运算赋值b再算++)
++a 表示前自增 (先运行++运算)

eg

a=10;
b=a++10; 则b=100 a=11
b=++a
10; 则b=110 a=11

比较运算符(重点)
“==”表示 等于
“!=”表示 不等于
“>=” “<=”表示 大于等于 小于等于

返回值为0,1表示真与假(是 否)

eg

int a=10;
int b=20;
printr("%d\n",a==b); 输出 0

运算符的优先级
单目运算符 高于 双目运算符 高于 三目运算符
1、{ }
2、++ – !(否) sizeof 数据类型强制转换 eg上面有float a,下面运算中可以用(int)a 代替 a
3、* / %(取余)
4、+ -
5、> < <= >=
6、== !=
7、&&(和)
8、||(或)
9、= += -= *= /= (赋值)

eg

int a=10;
int b=20;
int c=10;
printf("%d\n",c=++a<=b2); 依次算(++a)(b2)(++a<=b2)(赋值给c)输出 1
printf("%d\n,a"); 输出 11
printf("%d\n,b"); 输出 20 若上面是b
=2,则输出 40
printf("%d\n,c"); 输出 1 因为10不等于才所赋的值

逻辑运算符
!(非) &&(和) ||(或)
非真为假,非假为真 非非真(表示1【假】)
同真为真,其余为假

eg

int a=10;
printf("%d\n",!a) 输出 1【假】
printf("%d\n",!!a) 输出 1【假】

类型转换
1、自动转换
2、强制转换 形式(int)a
类型转换原则:占用内存字节少(值域小)的类型向占用内存字节多(值域大)的类型转换,以保精度不变

eg

float a=3.14;
int b=3;
printf("%lf\n",ab); 与 printf("%f\n",ab);相同输出浮点型
int sum=(int)ab 将a转换成int类型,不四舍五入
printf("%d\n",a
b) 输出整型

程序的流程结构:
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据是否满足条件,有选择地执行相应功能
循环结构:依据是否满足条件,循环多次执行某相应代码

形式:if{ } if{ } else{ } if{ } else if{ } else{ }
(可嵌套)

eg比较三个值的大小

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int a, b, c;
printf(“请输入三个值:\n”);
scanf("%d,%d,%d",&a,&b,&c);
if (a > b)
{
if (a > c)
{
printf(“a是最大值”);
}
else
{
printf(“c是最大值”);
}
}
else
{
if (b > c)
{
printf(“b是最大值”);
}
else
{
printf(“c是最大值”);
}
}
return EXIT_SUCCESS;
}

三目运算符

eg

printf(“输出最大值:\n”,a>b?a:b) 表示a>b,输出a,否则输出b

eg

a>b?(a>c?a:c):(b>c?b:c) (嵌入两个,先算括号再计算a>b?_ _)

switch语句(效率比 if 高)

eg

int main2()
{
int score;
scanf("%d", &score);
switch (score / 10)
{
case 10:
printf(“优秀\n”);
break;
case 9:
printf(“优秀\n”);
break;
case 8:
printf(“良好\n”);
break;
case 7:
printf(“及格\n”);
break;
case 6:
printf(“及格\n”);
break;
default:
printf(“不及格\n”);
break;
}
return EXIT_SUCCESS;
}

while语句

eg1

#include<stdio.h>
int main3()
{
int i = 1;
while (i < 10)
{
printf("%d\n", i);
i++;
}
return 0;
}

eg2 打印1-100所有偶数

int main4()
{
int i = 1;
while (i <= 10)
{
if (i % 2 == 0)
{
printf("%d\n", i);
}
i++;
}
return 0;
}

eg3 凡是带7或7的倍数需敲桌子,否则正常输出

int main5()
{
int i = 1;
while (i < 100)
{
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) //7的倍数 个位为7 十位为7
{
printf(“敲桌子\n”);
}
else
{
printf("%d\n", i);
}
i++;
}
return 0;
}

do while 语句 (先执行条件代码,再进行判断)

eg1

#include<stdio.h>
int main6()
{
int i = 1;
do
{
printf("%d\n", i);
i++;
}
while (i < 10);
return 0;
}

eg2 水仙花数(从100-999各个个位数的立方和相加等于这个数本身就是一个水仙花数)

int main7()
{
int i = 100;
do
{
int a = i % 10; //个位数
int b = i / 10 % 10; //十位数
int c = i / 100; //百位数
if (a * a * a + b * b * b + c * c * c == i)
{
printf("%d\n", i);
}
i++;
}
while (i < 999);
return 0;
}

for 语句

eg1

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h>//随机局部变量a=rand()%100;
int main8()
{
int i = 0; //for括号内或者在此定义i都可以
for (int i = 0;i < 10;i++);
{
printf("%d\n",i);
}
return 0;
}

eg2 猜数字

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<math.h>
#include<stdlib.h>
int main9()
{
int value=rand()%100; //0到100
int num;
for (; 😉 //h或者 while(1)表示死循环
{
printf(“请输入数字:\n”);
scanf("%d", &num);
if (value > num)
{
printf(“你输入的数太小了\n”);
}
else if (value < num)
{
printf(“你输入的数太大了\n”);
}
else
{
printf(“恭喜你,猜对了\n”);
break; //在循环语句中表示跳出或结束循环
}
}
return EXIT_SUCCESS;
}

eg3 随机输出10个100之内的数

int main()
{
stand(unsigned int)time(NULL)
int value=rand()%10; //省略这一句,在for语句内有表示即可
for(int i=0;i<10;i++)
{
int value=rand()%10;
printf("%d\n",i);
}
return 0
}

嵌套循环

eg1

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h> //sleep的应用需要
int main10()
{
for (int i = 0;i < 5;i++)
{
for (int j = 0;j < 5;j++)
{
printf(“i=%d,j=%d\n”, i, j);
}
}
return 0;
}
eg3 电子时钟

int main11()
{
for (int i = 0;i < 24;i++)
{
for (int j = 0;j < 60;j++)
{
for (int k = 0;k < 60;k++)
{
system(“cls”); //表示清屏,将所有步骤集中于一个变化中
printf("%02d:%02d:%02d\n", i, j, k);
Sleep(950); //休息950毫秒在执行
}
}
}

return 0;

}

eg4 九九乘法口诀

int main12()
{
for (int i = 1;i <= 9;i++)
{
for (int j = 1;j <= i;j++)
{
printf("%d*%d=%d\t", j, i, j * i);
}
printf("\n");
}
return 0;
}

原文链接:http://blog.qmgua.com/?id=50

=========================================

http://blog.qmgua.com/ 为 “布尔博客” 唯一官方服务平台,请勿相信其他任何渠道。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运的涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值