练习,数组

将所有元素值加倍后保存在数组中,最后由前往后输出数组中所有元素的值,再由后往前输出数组中所有元素的值,再输出数组中的所有大于100的数,以及下标为3的倍数的元素值。

  (1)创建一个长度为20的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。

#include <iostream>
using namespace std;
int main( )
{
    int i;
    int a[20]= {1,2,3,4,5,6,7,8,9,10}; //初始化前10个元素
    //键盘输入后10个元素的值

    cout<<"请输入后10个数值:"<<endl;
    for(i=10; i<20; i++)
        cin>>a[i];

    //由前往后输出数组中所有元素的值
    cout<<"由前往后,数组中的值是:"<<endl;
    for(i=0; i<20; i++)
    {
        cout<<a[i]<<"   ";
        if((i+1)%5==0)
            cout<<endl;
    }
    return 0;
} 

2)创建一个长度为10的整型数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数据加倍,输出改变后的值。

#include <iostream>  
using namespace std;  
int main( )  
{  
    int i;  
    int a[10]= {1,2,3,4,5,6,7,8,9,10}; //初始化  
  
    cout<<"由后往前,数组中的值是:"<<endl;  
    for(i=9; i>=0; i--)  
    {  
        cout<<a[i]<<endl;  
  
    }  
    //将所有元素值加倍后保存在数组中  
    for(i=0; i<10; i++)  
        a[i]*=2;  //或a[i]=a[i]*2;  
  
    //输出改变后的值  
    cout<<"由前往后,数组中改变了的值是:"<<endl;  
    for(i=0; i<10; i++)  
        cout<<a[i]<<" ";  
    cout<<endl;  
    return 0;  
}  

3)创建一个长度为10的整型数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素值。

#include <iostream>
using namespace std;
int main( )
{
    int i;
    int a[10]= {1,2,3,4,5,6,7,8,9,10}; //初始化

    cout<<"数组中整除3的值有:"<<endl;
    for(i=9; i>=0; i--)
    {
        if(a[i]%3==0)
        cout<<a[i]<<"   ";

    }

cout<<endl;
cout<<endl;
cout<<"下标整除3的数组有:"<<endl;
for(i=0;i<10;i++)
{
    if(i%3==0)
 cout<<"a["<<i<<"]为"<<a[i]<<endl;

}
    return 0;
}

学习局部改进写法

cout<<"下标为3的倍数的元素值是:"<<endl;  
for(i=0; i<10; i+=3)  
   cout<<"a["<<i<<"] "<<a[i]<<endl; 

以下是数组拼接、切分、转置与翻转的练习方法,结合了不同的操作及示例代码: ### 数组拼接 在 NumPy 中,常用的数组拼接函数有 `np.concatenate`、`np.vstack` 和 `np.hstack`。可以通过设定不同的数组形状和拼接轴来练习。 ```python import numpy as np # 创建示例数组 a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) # 使用 np.concatenate 沿轴 0 拼接 result_axis_0 = np.concatenate((a, b), axis=0) print("沿轴 0 拼接结果:") print(result_axis_0) # 使用 np.concatenate 沿轴 1 拼接 result_axis_1 = np.concatenate((a, b), axis=1) print("沿轴 1 拼接结果:") print(result_axis_1) # 使用 np.vstack 垂直拼接 vstack_result = np.vstack((a, b)) print("垂直拼接结果:") print(vstack_result) # 使用 np.hstack 水平拼接 hstack_result = np.hstack((a, b)) print("水平拼接结果:") print(hstack_result) ``` ### 数组切分 可以使用 `torch.chunk`(在 PyTorch 中)或 `np.split`(在 NumPy 中)进行数组切分练习。以 `torch.chunk` 为例: ```python import torch # 创建示例张量 a = torch.ones((2, 7)) # 在第 1 个维度进行切分,并分为 3 份 list_of_tensors = torch.chunk(a, dim=1, chunks=3) for idx, t in enumerate(list_of_tensors): print(f"第{idx + 1}个张量:{t}, shape is {t.shape}") ``` ### 数组转置 在 NumPy 中,使用 `.T` 属性或 `np.transpose` 函数来实现数组转置。 ```python import numpy as np # 创建示例数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 使用 .T 属性转置 transposed_T = a.T print("使用 .T 属性转置结果:") print(transposed_T) # 使用 np.transpose 转置 transposed_transpose = np.transpose(a) print("使用 np.transpose 转置结果:") print(transposed_transpose) ``` ### 数组翻转 可以使用 `np.flip` 函数对数组进行翻转操作。 ```python import numpy as np # 创建示例数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 沿轴 0 翻转 flipped_axis_0 = np.flip(a, axis=0) print("沿轴 0 翻转结果:") print(flipped_axis_0) # 沿轴 1 翻转 flipped_axis_1 = np.flip(a, axis=1) print("沿轴 1 翻转结果:") print(flipped_axis_1) ``` 通过不断改变示例数组的形状、维度、拼接份数、切分维度等参数,反复运行代码,观察结果,从而加深对数组拼接、切分、转置与翻转操作的理解和掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值