2022 11/16正在看第五章,写一点看书时书上的程序:
将秒数转换为分秒:
#include <stdio.h>
int main()
{
int sec, min, left;
printf("请输入需要转换的秒数:");
scanf("%d",&sec);
while (sec > 0)
{
min = sec / 60;
left = sec % 60;
printf("%d秒换算成分钟为%d分%d秒\n", sec, min, left);
printf("请输入下一个想要转换的数(停止使用请输入<0的数):");
scanf("%d",&sec);
}
return 0;
}
运行结果:
关于++与--的用法,直接上图:
根据书上原话,使用b++时只有在b被时候用后才递增为4,而++b只作用于n,不做用于a+b。
如果b++是表达式的一部分,可将其视为“先使用b,再递增”,++b则表示“先递增b,再使用递增后b
如果一个变量出现在一个函数的多个参数中,不要对该变量使用递增或递减运算符;
如果一个变量多次出现在一个表达式中,不要对该变量使用递增或递减运算符:
关于编写自己函数的一个例子:
#include <stdio.h>
void pound(int n);
int main()
{
int times = 5;
char ch ='!';
float f= 6.0;
pound(times);
pound(ch);
pound(f);
return 0;
}
void pound(int n)
{
while (n-- > 0)
printf("#");
printf("\n");
}
运行结果:
2022 11/17 8:46先看看返回值
C语言printf函数的返回值是printf实际控制输出的字符数
scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。 如果输入数据与指定格式不符,则会产生输入错误。 遇到输入错误,scanf函数会立即终止,返回已经成功读取的数据的个数。
打印A~G
#include <stdio.h>
int main()
{
int n = 64;
while (n++ < 71)
{
printf("%c", n);
printf("\n");
}
return 0;
}
要求打印a~g
#include <stdio.h>
int main()
{
int n = 96;
while (n++ < 103)
{
printf("%c", n);
printf("\n");
}
return 0;
}
第五章编程练习(p114)
题目1:编写一个程序,把用分钟示的时间转换为用小时和分钟表示的时间。使用#define或const创建一个表示60的符号常量或const变量。通过while循环让用户重复输入值,直到用户输入小于或等于0的数结束循环。
解:
#include <stdio.h>
#define MIN_S 60
int main()
{
int min, h,left;
printf("请输入分钟数:");
scanf("%d",&min);
while (min >0)
{
h = min / MIN_S;
left = min % MIN_S;
printf("%d分钟转换为小时为:%d小时%d分",min,h,left);
printf("\n输入下一个需要转换的数(输入<=0的数停止转换)");
scanf("%d",&min);
}
return 0;
}
注意,在while循环中,判定为真继续循环
题目2:编写一个程序,提示用户输入一个整数,然后打印比该数大10的所有整数(比如输入5,就打印5~15,包括5和15),要求打印各值之间用一个空格,制表符或者换行符(这仨货不就是传说中的空白吗0.0)
解:
#include <stdio.h>
int main()
{
int a;
printf("输入一个整数:");
scanf("%d", &a);
while (a < a + 11)
{
printf("%d %d %d %d %d %d %d %d %d %d", a, a + 1, a + 2, a + 3, a + 4, a + 5, a + 6, a + 7, a + 8, a + 9, a + 10);
printf("\n输入下一个数字:");
scanf("%d", &a);
}
return 0;
}
傻瓜式编程TOT
答案:
int main(int argc,int *argv[])
{
int counter, i = 0;
printf("输入数字:");
scanf("%d",&counter);
while (i++ < 11)
{
printf(" %d\n", counter++);
}
return 0;
}
但是去除int mian()中的int argc,int *argv[]仍可运行。。。。。。。。0.0
题3:提示用户输入天数,转换为周数和天数
解:
#include <stdio.h>
int main()
{
int a, b, c;
printf("输入天数");
scanf("%d",&a);
while (a > 0)
{
b = a / 7;
c = a % 7;
printf("%d days are %d weeks,%d days",a,b,c);
printf("\n输入下一个需要转换的天数(输入<=0的数结束转换)");
scanf("%d",& a);
}
printf("感谢使用");
return 0;
}
简单拿下
题4:编写一个程序,日式用户输入一个身高(cm),并分别以厘米和英尺,英寸为单位显示该值,允许有小数部分,该程序可以让用户重复输入身高,知道输入一个非正值
解:
#include <stdio.h>
#define a_cm 30.48
#define b_cm 2.54
int main(){
int a;
float b, cm;
printf("请输入身高(cm):");
scanf("%f", &cm);
while (cm > 0)
{
a = cm / a_cm;
b = (cm - a * a_cm) / b_cm;
printf("%.1f厘米=%d英尺%.1f英寸", cm, a, b);
printf("\n输入下一次需要转换的数(输入<=0的数停止转换)");
scanf("%f", &cm);
}
return 0;
}
没有拿下,注意%左侧不能有浮点型,本题不能用%来计算英寸
题5:修改程序5.13,可以认为第一天赚$1,第二天赚$2,第三天赚$3。
解:自己没做出来,抄答案来一遍
#include <stdio.h>
int main()
{
int money = 0;
int day=0;
printf("输入你工作天数:");
scanf("%d", &day);
while (day > 0)
{
money = money + day--;
}
printf("这些天总共赚了%d",money);
return 0;
}
累加的代码:
while (day > 0)
{
money = money + day--;
}
必须先给money和day赋一个初值程序才能运行
题6:修改上面的程序,但第一天赚1,第二天赚4,第三天赚9
解:还是看了答案才写出来
#include <stdio.h>
int main()
{
int money=0;
int day=0;
printf("输入你工作天数:");
scanf("%d", &day);
while (day > 0)
{
money =money+day * day;//自己写的day*day
day--;
}
printf("这些天总共赚了%d",money);
return 0;
}
循环求和的代码:
while (day > 0)
{
money =money+day * day;
day--;
}
题7:编写一个程序,提示用户输入一个double函数,并打印该数的立方值,自己设定一个函数计算并打印立方值,main()函数要把用户的输入的值传递给该函数。
解:
#include <stdio.h>
double cubic(double n);
int main()
{
double input;
printf("输入一个数:");
scanf("%lf",&input);
cubic(input);
return 0;
}
double cubic(double n)
{
double a = n * n * n;
printf("The %lg's cubic is %lg!\n",n,a);
return a;
}
抄答案抄答案,麻了,明儿来看自定义函数。
撤退!