本章一共四题先看第一题重新总结一下判断一下范围输入一个整数输出一个整数。#includestdio.h int main(){ int a1; while(a-1e4 a1e4){ scanf(%d,a); printf(%d,a); break; } return 0; }容易错的地方1e-4 和 -1e4这是电脑中的科学计数法以10为次方1e4就是10的4次方10000一万(免得数)1e-41前边4个00.0001-1e4-1后边4个0负一万看到题目需要判断范围加上还有容错这题讨论的空间其实就大了去了。浮点数其实就是小数一下就想明白了他给定了范围那就说明输入的数一定符合范围但重点是假设自己写代码的时候还是需要判断数是否符合标准。什么是误差为什么存在好比无限循环小数和无限不循环小数一般都会进行四舍五入有效位数的意思就是保证算的这些数以内都是正确的后续的就无法保证了也就是结果-估算0.001看到题解里还有一种做法把浮点数当成字符那碰到字符.时就可以判断范围了尝试#includestdio.h int main(){ float a; scanf(%f,a); printf(%.3f,a); return 0; }下一题最大范围为1000所以设数组最大为1001末尾有\0#include stdio.h int main() { char s[10001]; scanf(%s, s); printf(%s, s); return 0; }普及一个概念数组是连续的地址所以我们需要初始地址而数组名可以表示地址所以不需要下一题根据不同的类型做不同的输出#include stdio.h #include string.h int main() { int a; // 第一行整数-1e9到1e9 long long b; // 第二行长整数-1e18到1e18 double c; // 第三行实数-1e9到1e9 char d; // 第四行小写字母 char e[1001] {0}; // 第五行字符串不含空格或换行符 // 读取输入 scanf(%d, a); // 读取整数 scanf(%lld, b); // 读取长整数 scanf(%lf, c); // 读取浮点数 /* 读取字符前清除缓冲区在读取 d 时scanf(%c,d) 会读取之前输入浮点数后留在缓冲区中的换行符 \n而不是你真正想输入的字符。*/ while(getchar() ! \n); scanf(%c, d); // 读取字符 // 读取字符串前清除缓冲区 while(getchar() ! \n); scanf(%1000s, e); // 读取字符串限制长度防止溢出 // 输出结果 printf(%d\n, a); // 输出整数 printf(%lld\n, b); // 输出长整数 printf(%.1f\n, c); // 输出浮点数保留一位小数 printf(%c\n, d); // 输出字符 printf(%s\n, e); // 输出字符串 return 0; }