混合类型数据格式化输入
(1)实验代码
#include<stdio.h>
int main (void)
{
int b;
double a, d;
char c;
scanf("%lf %d %c %lf", &a, &b, &c, &d);
printf("%c %d %.2f %.2f", c, b, a, d);
}
(2)设计思路
第一步:定义变量和字符
第二步:输入浮点型,字符,整数
第三步:调整位置
第四步:输出
(3)本题调试过程碰到问题及解决办法
问题不大,就是要注意顺序
(4)运行结果截图
计算符号函数的值
(1)实验代码
#include<stdio.h>
int main ()
{
int n;
scanf("%d", &n);
if (n>0)
printf("sign(%d) = 1",n);
else if (n<0)
printf("sign(%d) = -1",n);
else
printf("sign(%d) = 0",n);
return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入变量n
第三步:用三个if语句判断
第四步:输出
(3)本题调试过程碰到问题及解决办法
没什么问题。
(4)运行结果截图
计算个人所得税
(1)实验代码
#include<stdio.h>
int main ()
{
int money;
double sum;
scanf("%d",&money);
sum = money - 1600;
if (money==0)
printf("0.00");
else if(money<1600&&money>0)
printf("0.00");
else if (money>1600&&money<=2500)
printf("%.2f",sum*0.05);
else if (money>2500&&money<=3500)
printf("%.2f",sum*0.1);
else if (money>3500&&money<=4500)
printf("%.2f",sum*0.15);
else
printf("%.2f",sum*0.2);
return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入变量
第三步:计算后判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
注意的是当money为0的时候输出的结果需要注意
(4)运行结果截图
比较大小
#include<stdio.h>
int main(void)
{
t=b;b=a;a=t;
}
t=c;c=a;a=t;
}
if(b<c){
t=c;c=b;b=t;
}
printf("%d->%d->%d",c,b,a);
}
(2)设计思路
第一步:定义变量
第二步:输入三个数,分别赋值
第三步:用三个if语句判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
总是部分正确,看测试点不断地调试最后正确
(4)运行结果截图
到底是不是太胖了
(1)实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double h1,w1,w2,x;
scanf("%d",&n);
while(n--){
scanf("%lf%lf",&h1,&w1);
w2 = (h1 - 100)*0.9 * 2;
x = fabs(w2 - w1);
if(w1 >= w2){
if(x < w2*0.1)
printf("You are wan mei!
");
else
printf("You are tai pang le!
");
}
else{
if(x < w2*0.1)
printf("You are wan mei!
");
else
printf("You are tai shou le!
");
}
}
return 0;
}
(2)设计思路
第一步:定义变量身高和体重
第二步:输入身高体重
第三步:计算并判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
没问题,一次通过
(4)运行结果截图
高速公路超速处罚
(1)实验代码
#include<stdio.h>
int main ()
{
double a,b,x;
scanf("%lf %lf",&a,&b);
x = (a-b) / b;
if(x<0.1)
printf("OK");
if(x>=0.1&&x<0.5)
printf("Exceed %.0f%%. Ticket 200",100*x);
if(x>=0.5)
printf("Exceed %.0f%%. License Revoked",100*x);
return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入并计算
第三步:用if语句判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
错在输出的格式忘记打空格,导致错误
(4)运行结果截图
统计字符
(1)实验代码
#include<stdio.h>
int main ()
{
int i, letter, blank, digit, other;
char a;
letter = blank = digit = other = 0;
for(i=1;i<=10;i++)
{
a = getchar();
if(a>='a'&&a<='z'||a>='A'&&a<='Z')
letter++;
else if(a=='
'||a==' ')
blank++;
else if(a>='0'&&a<='9')
digit++;
else
other++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
return 0;
}
(2)设计思路
第一步:定义变量,赋初值为0
第二步:运用for循环
第三步:每输入用if判断再自增1
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
之前在书上看到过这一题,做起来没什么问题
(4)运行结果截图
统计学生平均成绩与及格人数
#include<stdio.h>
int main (void)
{
int count,i,n;
double grade,total;
scanf("%d",&n);
count=0;
total=0;
if(n==0){
printf("average = 0.0 ");
printf("count = 0");
}
if(n!=0) {
for(i=1;i<=n;i++) {
scanf("%lf",&grade);
total=total+grade;
if(grade>=60){
count++;
}
}
printf("count = %d",count);
}
return 0;
}
(2)设计思路
第一步:定义变量赋初值
第二步:输入n,如果n为0的时候输出
第三步:不为0用for循环
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
n为0的时候没有注意到,之后加了一个if-else语句
(4)运行结果截图
输出闰年
#include<stdio.h>
int main(void)
{
if(year<2004)
printf("None");
}
(2)设计思路
第一步:定义变量
第二步:输入年并判断是不是21世纪的,不是输出
第三步:是的用for循环,并用if语句找出闰年
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
之前把21世纪看成20世纪了,错了一次
还有就是年份小于2004年时的结果,忽略了
(4)运行结果截图