小白日记
窈窈冥冥
这个作者很懒,什么都没留下…
展开
-
scanf的使用
写代码中,字符型和整型输入混在一起时,要注意回车和空格的误读。for(int 1=0;i<x;i++){……scanf("%d\n", &n);//#1……//中间是代码,没有其他输入scanf("%c %c %c\n", &a , &b, &c);//#2……}#1:不添加\n,则回车会被读入a中,添加\n,识别换行,a,b,c正常读入#2:下一轮读入时,#2缓存内容会送入#1#include<stdio.h>int mai原创 2021-04-11 18:08:48 · 144 阅读 · 0 评论 -
算法学习:pta:02-线性结构2 一元多项式的乘法与加法运算
一共编写五个函数分别是,读入多项式,输出多项式,相乘,相加,attach(创建新节点)。一、先编写attach函数在大部分函数中都需要使用它。创建一个新节点,void attach(int c,int e,f*prear){ f p; p = (f)malloc(sizeof(struct p)); p->c = c; p->e = e; p->link = NULL; (*prear)->link = p; *prear = p;}p是指向结构体的指原创 2021-04-01 23:54:07 · 452 阅读 · 0 评论 -
算法学习:pta:01-复杂度2 Maximum Subsequence Sum (25 分)
除计算最大子列和问题,还要求输出最大子列的第一位与第二位。刚开始考虑用数组存放,但是如果数列后面出现更大的最长子列,则不易于存放。借鉴其他人的代码,用left1,right两个坐标记录,因为要考虑后面是否会出现更大的最长子列,再添加一个中间量left2。其次,加上题目的额外要求,一共有三种情况,数列全为负数,数列只有零和负数,和“正常”情况。刚开始考虑用标志set对输入的数列同时进行扫描,但是,set不能同时解决三种情况。借鉴其他人的代码,不使用set做标记,只在初定义时令最大子列和max2=-1原创 2021-03-29 17:01:14 · 173 阅读 · 0 评论 -
小白日记:∑1/1-1/2+1/3-...-1/100
数值运算,注重两点:1.数的类型:int(%d),float(%f)如果进行小数、分数运算时,没有区分类型,会得到错误的结果。2.运算过程:对于float型数据运算时,需要对其中任一个数附上小数点,否则即使对所求结果(如代码中的tern)定义float,也会得出错误答案。#include<stdio.h>int main(){ int sign = 1; int i; float sum = 0.0; float tern; for (i = 1;i <= 100;原创 2020-12-11 20:01:01 · 222 阅读 · 0 评论 -
小白日记:比较大小
(一)两条数组以一条形式按照大小输出#include<stdio.h>int main(){ int i, j; int a[5] = { 9,8,6,4,3 }; int b[5] = { 7,5,4,2,1 };//设置数组 for (i = 0, j = 0;i < 5 && j < 5;) { if (a[i] > b[j]) { printf("%d ", a[i]); i++; } else if原创 2020-11-22 16:01:39 · 80 阅读 · 0 评论 -
小白日记:while循环
#include<stdio.h>int main(){ int i = 0, j = 0, r = 0; int r1, r2, num; int a[25], b[25], c[25]; while (scanf_s("%d", &num) && num != -1) { a[i] = num; i++; } r1 = i; while (scanf_s("%d", &num) && num != -1) {原创 2020-11-07 17:58:53 · 74 阅读 · 0 评论 -
小白日记:选择法
#include<stdio.h>void f(int arr[], int n)//从小到大选择法{ int i, ex, m, z; for (i = 0;i < n - 1;i++) { ex = i; for (m = i + 1;m < n;m++) { if (arr[m] < arr[i]) ex = m; } z = arr[ex];arr[ex] = arr[i];arr[i] = z; }}int main原创 2020-11-07 17:37:07 · 194 阅读 · 0 评论