Python123第九章答案

本文提供了C语言中关于结构体的六道练习题解答,包括复数运算、学生分数等级评定、时间加法等功能实现,适合初学者实践与巩固结构体知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python123第九章答案(自写,仅供参考) By:肇院伟烨

前言

1、代码自己写的,不是标准答案,仅供参考。

2、建议看懂后自己另外写而不是复制粘贴。

3、点击目录可以转跳

第九章

第1题

#include <stdio.h>

struct complex{
    int real;
    int imag;
};

struct complex multiply(struct complex x, struct complex y);

int main()
{
    struct complex product, x, y;

    scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag);
    product = multiply(x, y);
    printf("(%d+%di) * (%d+%di) = %d + %di\n",x.real, x.imag, y.real, y.imag, product.real, product.imag);

    return 0;
}

struct complex multiply(struct complex x, struct complex y)
{
	struct complex result;
	result.real=x.real*y.real-x.imag*y.imag;
	result.imag=x.real*y.imag+x.imag*y.real;
	return result;
} 

第2题

#include <stdio.h>
#define MAXN 10
struct student{
    int num;
    char name[20];
    int score;
    char grade;
}
;
int set_grade( struct student *p, int n );
int main()
{
    struct student stu[MAXN], *ptr;
    int n, i, count;
    ptr = stu;
    scanf("%d\n", &n);
    for(i = 0;i < n;i++)
    {
        scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
    }
    count = set_grade(ptr, n);
    printf("The count for failed (<60): %d\n", count);
    printf("The grades:\n");
    for(i = 0;i < n;i++)
    printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);
    return 0;
}
int set_grade( struct student *p, int n )
{
    int i,count=0;
    for(i=0;i<n;i++)
    {
        if(85<=p[i].score&&p[i].score<=100)
        p[i].grade='A';
        else if(p[i].score>=70)
        p[i].grade='B';
        else if(p[i].score>=60)
        p[i].grade='C';
        else
        {
            p[i].grade='D';
            count++;
        }
    }
    return count;
}

第3题

#include <stdio.h>
struct Time
{
	int hour;
	int minute;
	int second;
};
int main()
{
	struct Time time;
	int addtime;
	scanf("%d:%d:%d", &time.hour, &time.minute, &time.second);
	scanf("%d", &addtime);
	if (time.second + addtime >= 60)
	{
		time.second = time.second + addtime - 60;
		time.minute++;
	}
	else
	{
		time.second += addtime;
	}
	if (time.minute>= 60)
	{
		time.minute = time.minute - 60;
		time.hour++;
	}
	if (time.hour >= 24)
	{
		time.hour = 0;
	}
	printf("%02d:%02d:%02d", time.hour, time.minute, time.second);
	return 0;
}

第4题

#include<stdio.h>
struct vector {
    double x;
    double y;
};
int main()
{
    struct vector v1, v2, v;
    scanf("%lf%lf%lf%lf", &v1.x, &v1.y, &v2.x, &v2.y);
    v.x = v1.x + v2.x;
    v.y = v1.y + v2.y;
    printf("(%.1lf, %.1lf)", v.x, v.y);
    return 0;
}

第5题

#include<stdio.h>
struct BOOK {
    char name[30];
    double price;
};
int main()
{
    struct BOOK book[10];
    int n, i;
    int e_index,c_index;
    scanf("%d", &n);
    getchar();
    for(i=0;i<n;i++)
    {
        gets(book[i].name);
        scanf("%lf", &book[i].price);
        getchar();
    }
    e_index = 0;
    c_index = 0;
    for (i = 1;i < n;i++)
    {
        if (book[i].price > book[e_index].price)
            e_index = i;
        if (book[i].price < book[c_index].price)
            c_index = i;
    }
    printf("%.2lf, %s\n", book[e_index].price, book[e_index].name);
    printf("%.2lf, %s", book[c_index].price, book[c_index].name);
    return 0;
}

第6题

#include<stdio.h>
struct Contact {
    char name[10];
    int birthday;
    char phone[17];
};
int main()
{
    struct Contact contact[10],temp;
    int n, i, j;
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        scanf("%s", &contact[i].name);
        scanf("%d", &contact[i].birthday);
        scanf("%s", &contact[i].phone);
    }
    for (j = 1; j <= n; j++)
        for (i = 0; i < n - j; i++)
            if (contact[i].birthday > contact[i + 1].birthday)
            {
                temp = contact[i];
                contact[i] = contact[i+1];
                contact[i+1]= temp;
            }
    for (i = 0; i < n; i++)
    {
        printf("%s %d %s\n", contact[i].name,contact[i].birthday,contact[i].phone);
    }
    return 0;
}
### 关于《头歌 Python 程序设计》第四章的内容分析 在讨论《头歌 Python 程序设计》第四章的相关内容时,可以结合已知的参考资料来提供解答。以下是关于该章节可能涉及的核心知识点以及相关练习题解析。 #### 1. **核心概念** Python 的第四章通常会围绕以下几个主题展开: - 数据类型的深入理解(字符串、列表、元组等)。 - 控制结构的应用(条件语句 `if` 和循环语句 `for`, `while`)。 这些基础知识可以通过实际案例加深理解,比如猜单词游戏的设计和实现能够很好地体现系列数据类型和控制流的重要性[^1]。 #### 2. **典型题目解析** ##### (1) **猜数游戏** 猜数游戏是一个经典的编程练习,其目的是让用户猜测计算机随机生成的一个整数。如果用户的输入不符合预期,则提示重新输入直到正确为止。此过程可利用异常处理机制优化用户体验[^2]。 下面展示了一个简单的猜数游戏代码示例: ```python import random def guess_number(): number_to_guess = random.randint(1, 100) attempts = 0 while True: try: user_input = int(input("请输入您猜测的数字(1到100之间): ")) if not 1 <= user_input <= 100: raise ValueError() attempts += 1 if user_input < number_to_guess: print("太小了!") elif user_input > number_to_guess: print("太大了!") else: print(f"恭喜! 您用了 {attempts} 次机会猜中了数字.") break except ValueError: print("无效输入,请确保您的输入为有效范围内的整数.") guess_number() ``` 上述代码实现了基本功能并加入了错误捕获逻辑以增强健壮性。 ##### (2) **统计不同字符个数** 另一个常见的问题是编写函数计算给定字符串中的各类字符数量(字母、数字和其他符号),这有助于熟悉字符串操作方法。 下面是解决这一问题的一段示范代码: ```python def count_characters(s): letters = digits = others = 0 for char in s: if 'a' <= char.lower() <= 'z': letters += 1 elif '0' <= char <= '9': digits += 1 else: others += 1 return {'letters': letters, 'digits': digits, 'others': others} result = count_characters('abcABC123!@#') print(result) # 输出应为{'letters': 6, 'digits': 3, 'others': 3} ``` 这段脚本清晰地展示了如何遍历字符串并对每种类别进行分类计数。 #### 3. **其他注意事项** 对于初学者而言,在完成以上练习的同时还应注意培养良好的编码习惯,例如合理命名变量、适当添加注释说明以及遵循PEP8风格指南等内容[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值