输入输出命令:
- 输入函数scanf:在控制台接收指定格式的键盘输入,并将输入内容置于指定变量内存地址中;【格式:scanf(“格式化说明符”, 指定变量内存地址);】 格式: scanf(“%d”,&x);
注意:scanf()语句中不要加\n换行符号。
- 输入函数getchar:在控制台接收单个字符输入,并将返回字符赋值给指定字符变量; 格式:char ch = getchar();
1 //例: 2 #include3 4 void main() 5 { 6 //char ch ; 7 8 //ch = getchar(); 9 10 char ch = getchar();11 12 //printf("%c\n",ch);13 14 putchar(ch); // putchar(ch);等价于:printf("%c\n",ch);15 16 } //putchar(ch);方法中不可以写\n换行符号。
- 输出函数putchar:在控制台打印输出单个字符;
格式:putchar(待输出的字符变量、常量);
注:当用putchar(常量);时和printf("%c\n",ch); 是一样的,只是单纯的输出。
1 //例: 2 #include3 4 void main() 5 { 6 char ch ; 7 8 ch = getchar(); 9 10 //printf("%c\n",ch);11 12 putchar(ch);13 14 }
代码格式(细节):
例1:
1 #include2 3 int main() 4 { 5 int a; //原温度 6 7 int b; //目标温度 8 9 int c = 0; //最低温度10 11 int d = 300; //最高温度12 13 int e = 20; //增加值14 15 a = c;16 17 while (a<=d)18 {19 b = 5*(a-32)/9;20 21 printf("%d\t%d\n",a,b);22 23 a = a+e;24 }25 26 }
其中语句:b = 5*(a-32)/9;
该语句表达式中先写乘5最后再写除9,而不是直接写成5/9,其原因是因为在C语言及许多其他语言中,整数除法操作将执行舍位,结果中的任何小数部分都将会被舍弃;5和9都是整数,5/9后截取所得结果为0,因此这样求得的结果都将为0,得到的肯定不是设想中的结果。
修改后的范例:
1 #include2 3 int main() 4 5 { 6 float a,b; //原温度 //目标温度 7 8 int c = 0, d = 300, e = 20; //最低温度 //最高温度 //增加值 9 10 float f = 5, g = 9; //公式中定义需要11 12 a = c; //c为int型,a为浮点型;把c赋值给a(小的变大的)不需要强制转换。13 14 while (a<=d)15 {16 b = f/g*(a-32); //原计算公式:b = 5*(a-32)/9;9直接放在前面就会导致结果异常。17 printf("%f\t%f\n",a,b);18 19 a = a+e; //a为浮点型,e为int型;浮点型比int型范围大,所以运算时e会自动转换为浮点型再相加,a+e的和为浮点型,把和赋值给a,a为浮点型。假如表达式:a = a+e;中a为int型,e为浮点型,那么相加的和为浮点型,把和赋值给a时,和会被强制转换为int型(等号左边数据类型不可以被改变)。20 }21 }
注:如果某个算术运算符 有一个浮点型操作数和一个整型操作数,则在开始运算之前整形操作数将会被转换为浮点型;例如表达式float a; a-32; 32在运算过程中将被自动转换为浮点数再参与运算。不过即使浮点常量取得是整型值,在书写时最好还是为它加上一个显式的小数点,这样可以强调其浮点性质,便于阅读。
例2:
1 #include2 3 int main() 4 5 { 6 printf("请按下面格式输入时间信息:\nMM/dd/yyyy\n"); 7 8 int m,d,y; 9 10 scanf("%d %d %d",&m, &d, &y);11 12 printf("%d年%d月%d日\n",y, m, d);13 14 return 0;15 }
输入输出函数中的三个变量之间要用逗号隔开。