![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA习题
flowhappy
这个作者很懒,什么都没留下…
展开
-
PTA 习题11-7 奇数值结点链表 (20分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode {int data;ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *getodd( struct ListNode**L );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返回指向单链表头结点的原创 2021-01-25 13:46:59 · 420 阅读 · 0 评论 -
PTA 单链表结点删除 (20分)
我是题目链接本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode {int data;ListNode *next;};函数接口定义:struct ListNode *readlist(); struct ListNode *deletem( struct ListNode*L, int m );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返原创 2021-01-25 12:06:20 · 1421 阅读 · 0 评论 -
《Python 程序设计》第2章-14 求整数段和 (15分)
我是题目链接题目很简单,主要是换行,有以下几点要考虑:1,正好五个数,输出完后不可以换行2,不满五个数,但是输出完毕,需要换行a,b=map(int,input().split())sum=count=0for i in range(a,b+1): flag=0#换行标记,换行就为一 print("{:>5}".format(i),end='') sum+=i count+=1 if count==5 and i!=b+1:#当输出满五个 且未处原创 2021-01-24 19:18:35 · 153 阅读 · 0 评论 -
指针 习题11-2 查找星期
点击查看题目int getindex( char *s ){ int i; char *week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; for (i = 0; i < 7;i++){ if(strcmp(s,week[i])==0){ break; } } if(i>=7){原创 2020-09-17 17:13:03 · 886 阅读 · 0 评论 -
指针 习题11-1 输出月份英文名
点击查看题目char *getmonth( int n ){ int i; char *getmonth[12]={"January","February","March","April","May","June","July", "August","September","October","November","December"}; if(n>12){ return NULL; }else{ return getmont原创 2020-09-17 16:59:13 · 598 阅读 · 0 评论 -
剥洋葱 习题10-8 递归实现顺序输出整数 (15分)
void printdigits(int n) { if (n < 10) { printf("%d\n", n); } else { printdigits(n / 10); //递归进去的步骤:12345>1234>123>12>1(这里想象一下剥洋葱,一层一层的,越来越靠里) printf("%d\n", n % 10); //输出1之后,我们再把洋葱一层一层合上原创 2020-09-14 12:47:40 · 156 阅读 · 0 评论 -
结构指针 按等级统计学生成绩 (20分)
点击查看题目int set_grade(struct student* p, int n) { int i, count = 0; for (i = 0; i < n; i++,p++) { if (p->score >= 85 && p->score <= 100) { p->grade = 'A'; } else if (p->score >= 70原创 2020-09-11 17:03:49 · 816 阅读 · 0 评论 -
scanf原理 习题9-4 查找书籍 (20分)
点击查看题目#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>struct books { char name[100]; double price;};int main() { int n, i, j; struct books book[10], t, k; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("\n");//上面输入n留下的一个/n的缓冲原创 2020-09-10 18:41:46 · 131 阅读 · 0 评论 -
很多注释的 习题9-1 时间换算 φ(≧ω≦*)♪
点击查看题目#define _CRT_SECURE_NO_WARNINGS//这行不用管,要不要无所谓,我不加这行scanf会报错#include <stdio.h>#include <math.h>struct time {//新建time结构以及结构成员 int hour; int min; int sed;};int main() { struct time t1, backtime; int addt; scanf("%d:%d:%d\n", &am原创 2020-09-08 17:47:16 · 153 阅读 · 0 评论 -
动态内存分配 习题8-10 输出学生成绩 (20分)
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95输出样例:average = 90.00max = 95.00min = 85.00原创 2020-09-07 11:05:20 · 932 阅读 · 0 评论 -
两种写法 习题8-7 字符串排序 (20分)
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。点击查看题目第一种:冒泡排序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <math.h>int main() { char a[5][99], t[99] = {'\0'}; int i, j; for (i = 0; i &.原创 2020-09-06 17:53:53 · 374 阅读 · 3 评论 -
指针 分类统计各类字符个数 (15分)
题目链接:https://pintia.cn/problem-sets/12/problems/343void StringCount(char* s) { int num = 0, uletter = 0, lletter = 0, blank = 0, other = 0; for (; *s != '\0'; s++) { if ((*s >= '0') && (*s <= '9')) { num++;原创 2020-09-04 21:34:12 · 1535 阅读 · 0 评论 -
傻乎乎的写法 使用函数实现字符串部分复制
蛮简单的,直接上代码#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <math.h>#define MAXN 20void strmcpy(char* t, int m, char* s);int main(){ char t[MAXN], s[MAXN]; int m; scanf("%d\n", &m); gets(t); strmcpy(t, m, s原创 2020-09-04 20:26:47 · 139 阅读 · 0 评论 -
一个方法,两种写法 习题8-6 删除字符 (20分)
本题要求实现一个删除字符串中的指定字符的简单函数。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char *str, char c );int main(){ char str[MAXN], c; scanf("%c\n", &c); gets(str); delchar(str, c); printf("%s\n", str); return 0;}数原创 2020-09-04 18:55:04 · 182 阅读 · 0 评论 -
傻乎乎的写法 PTA练习8-8 移动字母 (10分)
本题要求编写函数,将输入字符串的前3个字符移到最后。先跳过前三个元素开始输出,再输出前三个元素,并赋值到新数组中,最后把新数组的值一个一个赋给原数组。方法有点投机取巧,不知道最正确的写法是什么,希望有大佬解答void Shift(char s[]) { char a[MAXS]; int j = 0; for (int i = 3; s[i] != '\0'; i++) { a[j] = s[i]; j++; } for (i原创 2020-09-04 15:23:08 · 766 阅读 · 0 评论 -
模拟报数图 习题8-4 报数 (20分)
这道题刚开始我理解错了,以为输出的是数组内先后输入到out数组里的数字,其实Out里存储的是原数组中每一次元素退出的顺序编号。我附一张模拟报数的图,输入为 5 2void CountOff(int n, int m, int out[]) { int b[MAXN]; int i = 0, j = 0, count = 0; for(i=1;i<=n;i++){ b[i]=i; } i=0; while(1){原创 2020-09-02 18:07:21 · 153 阅读 · 0 评论 -
傻乎乎的写法 习题6-5 使用函数验证哥德巴赫猜想 (20分)
习题6-5 使用函数验证哥德巴赫猜想 (20分)本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。int prime(int p) { int flag = 1; if (p < 2) { flag = 0; } for (int i = 2; i < p; i++) { if (p % i == 0)原创 2020-09-01 15:17:03 · 220 阅读 · 0 评论 -
傻乎乎的写法 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
**习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)**分享一个傻乎乎的写法int fib(int n) { int a[10000] = { 1,1 }; int end; for (int i = 2; i < 10000; i++) { a[i] = a[i - 1] + a[i - 2]; } for (int i = 0; i < 10000; i++) { if (n == i )原创 2020-08-31 20:26:55 · 324 阅读 · 0 评论