您现在的位置是:首页 >其他 >【C语言】编程练习(二)网站首页其他
【C语言】编程练习(二)
简介【C语言】编程练习(二)
多组输入判断输入的是不是字母
解题思路
- 需要多组输入
- 判断是否是字母
- 使用getchar()函数清空内存中的空格
- 根据ASCII码表来判断
代码如下
#include<stdio.h>
int main()
{
char n = 0;
//多组输入
while (scanf("%c",&n)!=EOF)
{
//使用getchar()函数清空内存中的空格
getchar();
//判断是否是字母
//根据ASCII码表
if ((n>='a' && n <= 'z')||(n>='A'&&n<='Z'))
{
printf("%c is an alphabet.
", n);
}
else
{
printf("%c is not an alphabet.
", n);
}
}
return 0;
}
运行结果
网购
解题思路
- 判断日期是双11还是双12
- 双11打7折
- 双12打8折
- 一行输入4个数 衣服价格 月份 日期 优惠卷
- 一张优惠卷减50
- 花钱不可能为负数
- 保留两位小数
代码如下
#include<stdio.h>
int main()
{
double price = 0;
int moth = 0;
int day = 0;
int tack = 0;
double sum = 0;
scanf("%lf %d %d %d", &price, &moth, &day, &tack);
//判断日期,并且根据日期计算价格
if (moth==11&&day==11)
{
sum = price * 0.7 - tack * 50;
}
else if(moth==12&&day==12)
{
sum = price * 0.8 - tack * 50;
}
else
{
sum = price;
}
//如果sum为负数那么就等于0
if (sum<0)
{
sum = 0;
}
printf("%.2lf", sum);
return 0;
}
运行结果
注意事项
- 金额不能为负数,为负数这直接为0;
- 输出金额注意是保留两位小数。
乘法口诀表
解题思路
- 手动控制
- 使用一个循环打印列数
- 嵌套一个循环打印行上的内容
- 使用一个函数
代码如下
#include<stdio.h>
void print(int n)
{
int i = 0;
//打印列数
for (i = 1; i <= n; i++)
{
int j = 0;
//打印行中的内容
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", i, j, i * j);
}
//打印完一行内容换行
printf("
");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print(n);
return 0;
}
运行结果
交换两个整数
写一个函数实现交换两个整数
解题思路
- 输入两个整数
- 写一个函数交换两个数
- 使用指针来交换
代码如下
#include<stdio.h>
void Sawp(int* x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交换前:
a=%d,b=%d
",a,b);
Sawp(&a, &b);
printf("交换后:
a=%d,b=%d
", a, b);
return 0;
}
运行结果
注意事项
不能通过传值调用函数,要使用传址调用,这样才能改变内存中的数。
函数判断闰年
写一个函数判断是否是闰年
解题思路
- 闰年的规则能被4整除不能被100整数,并且可以被400整除。
- 使用函数判断是闰年返回1,不是闰年返回0。
代码如下
#include<stdio.h>
int is_year(int year)
{
if ((year%4==0&&year%100!=0)||year%400==0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int year = 0;
scanf("%d", &year);
is_year(year);
if (year)
{
printf("%d年是闰年
", year);
}
else
{
printf("%d年不是闰年
", year);
}
return 0;
}
运行结果
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。