C语言学习记录—作业3

1. 求两个数最大公约数

辗转相除法

int main()
{
	int a = 18;
	int b = 24;
	int c = 0;
	//当c=0时,说明已求出最大公约数,也说明条件为假,循环结束
	while (c = a % b)//18%24=18
	{
		a = b;//b赋值给a,a=24
		b = c;//c赋值给b,b=18
	}

	printf("%d\n", b);

	return 0;
}

2. 转换以下ASCII码值对应字符并输出他们。73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33
一行输出转换题目中给出的所有ASCII码对应的字符,无需以空格隔开。
int main()
{
	int arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33 };
	int i = 0;
	//sizeof(arr)计算的是数组的总大小,单位是字节
	//sizeof(arr[0])计算的是数组元素的大小
	int sz = sizeof(arr) / sizeof(arr[0]);
	while (i<sz)
	{
		printf("%c", arr[i]);
		i++;
	}
	return 0;
}

3. 输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
输入描述:输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出描述:三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。
int main() {
	int year = 0;
	int month = 0;
	int date = 0;
	scanf("%4d%2d%2d", &year, &month, &date);

	printf("year=%d\n", year);
	printf("month=%02d\n", month);
	printf("date=%02d", date);

	return 0;
}

4. 依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。
输入描述:在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。
输出描述:学号,3科成绩,输出格式详见输出样例。
17140216; 80.845, 90.55, 100.00
The each subject score of No. 17140216 is 80.85, 90.55, 100.00.
int main() {
	int id = 0;
	float c = 0.0f;
	float math = 0.0f;
	float english = 0.0f;

	scanf("%d;%f,%f,%f", &id, &c, &math, &english);
	printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", id, c, math, english);
	return 0;
}

5. KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,
你能帮他写个程序输出printf(“Hello world!”)的返回值吗?
输出描述:包括两行:
第一行为“Hello world!”
第二行为printf(“Hello world!”)调用后的返回值。
int main() {
    int n = printf("Hello world!");//Hello world! 是这一行代码打印的
    printf("\n%d\n", n);//这个打印12,因为上面字符串的长度
    return 0;
}

6. 静态变量 static
int sum(int a)//每次a = 2;
{
	int c = 0;
	static int b = 3;
	c += 1;// 每次c = 1
	b += 2;// b = 5; b = 7;每次+2
	return (a + b + c);
}
 
int main()
{
	int i;
	int a = 2;
	for (i = 0; i < 5; i++)
	{
		printf("%d,", sum(a));//8, 10, 12, 14, 16
	}
	return 0;
}

7. 转义字符练习:输出描述:
printf("Hello world!\n");
cout << "Hello world!" << endl;
int main() {
	printf("printf(\"Hello world!\\n\");\n");
	printf("cout << \"Hello world!\" << endl;");
	return 0;
}

8. 小乐乐获得4个最大数,请帮他编程找到最大的数。
输入描述:一行,4个整数,用空格分开。
输出描述:一行,一个整数,为输入的4个整数中最大的整数。
int main() {
    //方法1:
    //输入4个整数
    int arr[4] = { 0 };
    int i = 0;
    while (i < 4)
    {
        scanf("%d", &arr[i]);
        i++;
    }
    
    //找最大值
    int max = arr[0];
    i = 1;
    while (i < 4)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
        i++;
    }
    printf("%d", max);


    //方法2:
    int i = 0;
    int n = 0;
    int max = 0;
    while (i < 4)
    {
        scanf("%d", &n);
        if (n > max)
        {
            max = n;
        }
        i++;
    }
    printf("%d", max);
    return 0;
}

9. 给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4 / 3 * πr3,其中 π = 3.1415926。
输入描述:一行,用浮点数表示的球体的半径。
输出描述:一行,球体的体积,小数点后保留3位。
int main() {
    double n = 0.0;//半径
    scanf("%lf", &n);
    double v = 0.0;//体积
    v = 4.0 / 3.0 * 3.1415926 * n * n * n;
    printf("%.3lf", v);
    return 0;
}

10. 计算BMI指数
输入描述:一行,两个整数,分别表示体重(公斤),身高(厘米),中间用一个空格分隔。
输出描述:一行,BMI指数(保留两位小数)。
int main() {
    int weight = 0;
    int height = 0;
    scanf("%d %d", &weight, &height);

    float bmi = 0.0f;
    bmi = weight / ((height / 100.0) * (height / 100.0));
    printf("%.2f", bmi);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值