第二次作业
改错题
1输出带框文字:在屏幕上输出以下3行信息。
错误信息1:
错误原因:标准输入输出拼写错误
改正方法:第一行改成stdio.h
错误信息2:
错误原因:主函数拼写错误,五行少引号,六行少分号
改正方法:mian改成main,五行括号最后添加引号,六行最后加分号
2计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。
错误信息1:
错误原因:标准输入输出格式错误
改正方法:stdio后面加h
错误信息2:
错误原因:三个%d后面没有对应相应数量的变量,提示格式不完整
改正方法:输出的变量填写改成y,x,x和x,x,y,“输出”后面加*/
错误信息3:
错误原因:x没有赋值,d前面没%,第一行输出没有分行
改正方法:变量定义下一行加x=3;,输出第二行前面加%,输出第一行引号内最后加\n
学习总结
1
#include <stdio.h>
int main()
{
printf("int: %d字节\n",sizeof(int));
return 0;
}
运行结果
#include <stdio.h>
int main()
{
printf("long: %d字节\n",sizeof(long));
return 0;
}
运行结果
#include <stdio.h>
int main()
{
printf("float: %d字节\n",sizeof(float));
return 0;
}
运行结果
#include <stdio.h>
int main()
{
printf("double: %d字节\n",sizeof(double));
return 0;
}
运行结果
2
结果
修改程序,输出i+1,结果是什么?为什么?
组成此常量类型的0和1的数量不足,不足以表示范围以外的数
修改程序输出j-1,结果是什么?为什么?
原因与上个问题同理
3
运行结果
原因:144要由八进制转化成十进制就是18^2+48+4=100,64由十六进制转成十进制就是6*16+4=100
4
1.double变量的输入引号内,如果是小数,用%f,而输出用%lf
2.%2.1f,中间的阿拉伯数是保留几位小数的意思,没有设定则默认六位,%紧后面的是一共要占几列,列数小于
常数长度旳话以常数长度输出
3.如果涉及到输入和运算,要预先得出结果看是否是小数,是小数则设double变量,只得整数就设int变量
4.%d整型十进制%o整型八进制%x整型十六进制%f实型小数型浮点数%e实型指数型浮点数
5.123/100求百位,123%100/10求十位,123%10求个位
实验总结
厘米换算英尺英寸
1.如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
2.
3.代码
#include<stdio.h>
int main()
{
int cm,foot,inch;
scanf("%d",&cm);
foot=cm/30.48;
inch=(cm/30.48-foot)*12;
printf("%d %d",foot,inch);
return 0;
}
4
5问题1:出现大量段错误
原因:输入没填地址符
解决方法:cm前面加地址符
问题2:不知道怎么算出英尺英寸
原因:不知道英尺英寸间如何分配,以为要二元一次方程组
解决方法:最终知道英尺的小数部分乘十二就是英寸,整数部分就是英尺
A乘B
1.看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
2.
3.代码
#include<stdio.h>
int main()
{
int A,B,C;
scanf("%d%d",&A,&B);
C=A*B;
printf("%d",C);
return 0;
}
4.
5.问题1:第七行报错,期望在前面加;
原因:赋值后没加分号
解决方法:赋值后面加分号
整数四则运算
1.本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
2.
3.代码
#include<stdio.h>
int main()
{
int A,B,a,b,c,d;
scanf("%d%d",&A,&B);
a=A+B;b=A-B;c=A*B;d=A/B;
printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %d",A,B,a,A,B,b,A,B,c,A,B,d);
return 0;
}
4.
5.问题:无
整数152的各位数字
1.本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
2.
3.代码
#include<stdio.h>
int main()
{
int a,b,c;
a=152/100;
b=152/10-a*10;
c=152-a*100-b*10;
printf("152 = %d + %d*10 + %d*100",c,b,a);
return 0;
}
4.
5.问题:同sample答案错误
原因:十位数计算错误,导致个位数计算错误
解决方法:改成如图算法
PTA提交列表
第一次
第二次