作业1:输入两个数,获得两个数加减乘除的值。
#include <stdio.h>
/*
实现:输入两个数,获得两个数加减乘除的值。
*/
int main()
{
// 我不仅需要整数计算,要包含小数值。
int a;
int b;
int result;
float resultFloat;
printf("请输入两个值\n");
scanf("%d%d",&a,&b);
result = a + b;
printf("它们两个值相加为:%d\n", result);
if (a>b){
result = a - b;
} else{
result = b - a;
}
printf("它们两个值相减为:%d\n", result);
result = a * b;
printf("它们两个值相乘为:%d\n", result);
resultFloat = (float)a / b;
//printf("它们两个值相除为:%d\n", resultFloat); ※错误点 占位符%d,即便我是浮点数计算,
//但是%d的存在规定了我输出的东西为 整数输出,导致最终输出结果为0.
printf("它们两个值相除为:%f\n", resultFloat);
return 0;
}
输出结果:
遇到的小错误:
代码:
#include <stdio.h>
/*
实现:输入两个数,获得两个数加减乘除的值。
*/
int main()
{
// 我不仅需要整数计算,要包含小数值。
int a;
int b;
int result;
float resultFloat;
printf("请输入两个值\n");
scanf("%d%d",&a,&b);
result = a + b;
printf("它们两个值相加为:%d\n", result);
if (a>b){
result = a - b;
} else{
result = b - a;
}
printf("它们两个值相减为:%d\n", result);
result = a * b;
printf("它们两个值相乘为:%d\n", result);
resultFloat = (float)a / b;
//printf("它们两个值相除为:%d\n", resultFloat); ※错误点 占位符%d,即便我是浮点数计算,
//但是%d的存在规定了我输出的东西为 整数输出,导致最终输出结果为0.
printf("它们两个值相除为:%d\n", resultFloat);
return 0;
}
问题在于:
printf("它们两个值相除为:%d\n", resultFloat);
应为:
printf("它们两个值相除为:%f\n", resultFloat);
占位符%d,即便我是浮点数计算,但是%d的存在规定了我输出的东西为 整数输出,导致最终输出结果为0。
错误输出结果:
作业2:密码机
代码:
#include <stdio.h>
int main()
{
char c1 ='C';
char c2 ='h';
char c3 ='i';
char c4 ='n';
char c5 ='a';
puts("这是一个密码机负责赋值转换。\n");
//转换操作,涉及到ASCII码值的计算。
c1 = c1 + 4;
c2 = c2 + 4;
c3 = c3 + 4;
c4 = c4 + 4;
c5 = c5 + 4;
// putchar("转换之后的字符为:%c%c%c%c%c",c1,c2,c3,c4,c5); 函数的作用是输出单个字符,而不是输出字符串或格式化输出。
printf("转换之后的字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
// putchar("%c%c%c%c%c",c1,c2,c3,c4,c5);
printf("转换之后的字符为:");
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
putchar('\n'); // 输出换行符
return 0;
}
遇到的问题:
putchar 和 printf 的区别:
putchar 只能输出单个字符,而不是输出字符串或格式化输出。
输出结果: