#include<stdio.h>
int main()
{
//接受用户输入的小写字母,转换为大写字母并显示
char ch = 'a';
printf("%c\n", ch - ' ');
}
scanf函数
以某种格式扫描函数输入
基本用法
int num;
printf("请输入数量:");
scanf("%d",&num);
#include<stdio.h>
int main()
{
//伤害 = 武器伤害 * (玩家力量 +100)/100
// 1.需要几个变量? 3个 武器伤害,玩家力量,伤害
// 2.对应什么数据类型? double, int, double
double w_dmg = 356; //武器伤害
int strength; //玩家力量
double dmg; //伤害
printf("请玩家输入角色力量:");
//&取地址,指针
scanf("%d", &strength);
//套用公式
dmg = w_dmg * (strength + 100) / 100;
printf("伤害是:%.2lf", dmg);
}
运算符与表达式
一元运算符: ++,–
二元运算符: +,-,*,/,%
取模 %
5 % 2 取余数 =3
-5 % 2 取余数 =-3
5 % -2 取余数 =3
-5 % -2 取余数 =-3
调试
- 分析错误
- 设置断点
- 启动调试
- 单步运行
- 观察变量
- 发现问题
- 修正代码重新运行
do-while 循环
基本语法:先执行后判断
do{
循环操作
}while(循环条件);
题目 b=? (注意while条件)
int a = 1, b =10;
do{
b -= a;
a++;
}while (b-- <0);
b | a |
---|---|
9 | 2 |
8 | 2 |
题目:如果你是一位君王,你希望身边的伴侣
if写法
int main() {
int choice; //用户选择
//打印游戏菜单
printf("性格测试:\n");
printf("如果您是一位君王,对于身边的伴侣,您希望\n");
printf("1孟佳琪\n");
printf("2找俩\n");
printf("3找一堆\n");
do{ //如果输入错误就会一直输入
printf("请选择\n");
scanf("%d", &choice);
if(choice == 1){
printf("可以的\n");
}
if(choice == 2){
printf("你完了\n");
}
if(choice == 3){
printf("你真的完了\n");
}
if(choice <0 || choice >3){
printf("你个傻逼,从新输入:\n");
}
}while(choice < 1 || choice > 3);
return 0;
}
switch写法:
int main() {
int choice; //用户选择
//打印游戏菜单
printf("性格测试:\n");
printf("如果您是一位君王,对于身边的伴侣,您希望\n");
printf("1孟佳琪\n");
printf("2找俩\n");
printf("3找一堆\n");
do{ //如果输入错误就会一直输入
printf("请选择\n");
scanf("%d", &choice);
switch(choice){
case 1:
printf("1个\n");
break;
case 2:
printf("2个\n");
break;
case 3:
printf("3个\n");
break;
default:
printf("你傻逼");
}
}while(choice < 1 || choice > 3);
return 0;
}
while 和 do-while循环的区别
while 是 先判断再执行
do-while 是 先执行再判断
int num = 1234;
//取个十百千位
printf("个位: %d\n", num % 10);
printf("十位: %d\n", num / 10 % 10);
printf("百位: %d\n", num / 100 % 10);
printf("千位: %d\n", num / 1000 % 10);
//规律除10再模10可以去除尾数位
while( num > 0){
数字翻转
解法1:
#include <stdio.h>
int main() {
int value, right_number;
value = 0;
do
{
printf("请输入一个数字:");
scanf("%d", &value);
if( value <= 0)
printf("数字必须为正\n");
}while(value <= 0); //<=0就再次进入循环
printf("翻转后的数字为:");
do
{
right_number = value % 10; //取出末位
printf("%d", right_number);
value= value / 10;
}while( value != 0);
printf("\n");
}
解法2: