Python123第九章答案

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;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值