程序设计课程笔记3

小编 2026-06-27 阅读:718 评论:0
一.这段时间的学习       数组这个东西,我第一次使用是在循环语句的习题里,由于那时运用的比较熟练,我本以为数组的东西全搞明白了但做了第四组我才发现我这个想法是完全错误的。从第四章的第九题开始,一道比...

一.这段时间的学习

      数组这个东西,我第一次使用是在循环语句的习题里,由于那时运用的比较熟练,我本以为数组的东西全搞明白了但做了第四组我才发现我这个想法是完全错误的。从第四章的第九题开始,一道比一道“新”的设定和算法的思路让我意识到了我还是差的很远,再加上数组的第21题,我感觉是用到了我们从来没学过的东西,周五晚上我一共敲了三个代码,用了整整4.5小时,也是自闭了一晚上,在百度搜了一晚上相关知识把set和字符串基本从头学了一遍,然后试了20遍才敲出来。当然,这是痛与快乐并存的,花了时间若能有提升,总是有好处的!

二.相关习题及思路

1.矩阵交换行

#include<iostream>
using namespace std;
int main()
{int n,i,j,m;
	int a[6][6];
	for(i=1;i<=5;i++)
	{
		for(j=1;j<=5;j++)
		{
			cin>>a[i][j];
		}
		}
		cin>>m>>n;
		for(j=1;j<=5;j++)
		swap(a[m][j],a[n][j]);
		for(i=1;i<=5;i++)
		{
			for(j=1;j<=5;j++)
			{cout<<a[i][j]<<\" \";}
			
			cout<<endl;}
		return 0;
	}

这道题我没用基本的多重循环嵌套,而是用了\"swap\"这个交换数据的指令,这个可以节省很多空间

 

2.细菌的繁殖与扩散

#include<iostream>
using namespace std;
int m,n;
int dx[8]={-1,-1,-1,0,1,1,1,0};
int dy[8]={-1,0,1,1,1,0,-1,-1};
int a[5][10][10];
int main()
{
cin>>m>>n;
a[0][5][5]=m;
for(int k=1;k<=n;k++)
{
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
{
a[k][i][j]=2*a[k-1][i][j]; 
for(int l=0;l<8;l++) 
{
int nx=i+dx[l],ny=j+dy[l];
if(nx>0&&nx<=9&&ny>0&&ny<=9)
a[k][i][j]+=a[k-1][nx][ny];
}
}
}
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
cout<<a[n][i][j]<<\' \';
cout<<endl;
}
}

3.蛇形填充数组

#include<cstdio>
int t=1,a[15][15];
int main(){
    int n,i,j;
    scanf(\"%d\",&n);
    i=j=1;
    while(t<=n*n)
	{
        while(1)
		{
            if(i<1||j>n)
			{
                i++;j--;break;
            }
            else{
                a[i][j]=t;t++;i--;j++;
            }
        }
        if(j==n) i++;
        else if(i==1) j++;
        while(1)
		{
            if(i>n||j<1)
			{
                j++;i--;break;
            }
            else{
                a[i][j]=t;t++;i++;j--;
            }
        }
        if(i==n) j++;
        else if(j==1) i++;
    }
    for(i=1;i<=n;i++){
        for(j=1;j<n;j++)
            printf(\"%d \",a[i][j]);
        printf(\"%d\\n\",a[i][n]);
    }
}

4.变换的矩阵

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
       int n,i,j,k,t=0,e=0,r,w=0,z=0;
      char a[15][15],b[15][15];
               cin>>n;
        for(i=1;i<=n;i++)
             for(j=1;j<=n;j++)
               cin>>a[i][j];
             for(i=1;i<=n;i++)
              for(j=1;j<=n;j++)
               cin>>b[i][j];
                  for(i=1;i<=n;i++)
                {
                    for(k=1,j=n;j>=1;j--,k<=n) {
                        if(a[j][i]==b[i][k++])
                               t++;
                  }
                }
                    for(k=1,k<=n,i=n;i>=1;i--,k++)
                  {
                      for(j=1;j<=n;j++)
                      {
                          if(a[j][i]==b[k][j]) e++;
                      }
                  }
                 for(k=n,k<=1,i=1;i<=n;i++,k--)
                  {
                      for(r=n,r<=1,j=1;j<=n;j++,r--)
                      {
                          if(a[i][j]==b[k][r])
                               w++;
                      }
                  }
                 for(i=1;i<=n;i++)
                    {
                        for(j=1;j<=n;j++)
                        {
                            if(a[i][j]==b[i][j])
                                z++;

                            }
                        }
                        if(t==n*n)  cout<<\"1\";
                        else if(e==n*n)  cout<<\"2\";
                        else if(w==n*n)   cout<<\"3\";
                          else if(z==n*n)  cout<<\"4\";
                          else cout<<\"5\";

      return 0;
}

5.字符串hash

#include <iostream>
#include <set>
using namespace std;
int main() 
{
    int n;
	scanf(\"%d\",&n);
	int sum=0;
	for(int i=1;i<=n;i++)
	{string t;
    set<string> s;
    while(cin >> t) s.insert(t);
    sum+=s.size();}
	cout<<sum;
    return 0;
}

三.总结

距离期末考试大概没多长时间了,接下来这段时间还有一套综合题可以用来练手,充分利用这段时间,尽量每天都敲敲代码防止手生,尽量拿一个比较满意的成绩吧!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表