c++中struct结构的一个小例子

从键盘依次输入年、月、日、时、分、秒,显示出来。

#include <iostream>
using namespace std;
struct MyTimeStruct{
    unsigned int Year;
    unsigned int Month;
    unsigned int Day;
    unsigned int Hour;
    unsigned int Minute;
    unsigned int Second;
};

int main()
{
    MyTimeStruct MyTime;
    cout<<"请输入年份:"<<endl;
    cin>>MyTime.Year;

    cout<<"请输入月份:"<<endl;
    cin>>MyTime.Month;

    cout<<"请输入日期:"<<endl;
    cin>>MyTime.Day;

    cout<<"请输入小时:"<<endl;
    cin>>MyTime.Hour;
    
    cout<<"请输入分钟:"<<endl;
    cin>>MyTime.Minute;
    
    cout<<"请输入秒:"<<endl;
    cin>>MyTime.Second;
 
    cout<<MyTime.Year<<"/"
        <<MyTime.Month<<"/"
        <<MyTime.Day<<" "
        <<MyTime.Hour<<":"
        <<MyTime.Minute<<":"
        <<MyTime.Second;
    return 0;
}

C 语言没有内置的 `vector` 数据结构,但是可以通过自己实现动态数组来模拟 `vector` 的功能。 以下是一个简单的动态数组实现: ```c #include <stdio.h> #include <stdlib.h> typedef struct { int *data; int size; int capacity; } Vector; void vector_init(Vector *vec) { vec->data = NULL; vec->size = 0; vec->capacity = 0; } void vector_push_back(Vector *vec, int value) { if (vec->size >= vec->capacity) { int new_capacity = vec->capacity == 0 ? 1 : vec->capacity * 2; int *new_data = (int *)realloc(vec->data, new_capacity * sizeof(int)); if (new_data == NULL) { fprintf(stderr, "Out of memory\n"); exit(1); } vec->data = new_data; vec->capacity = new_capacity; } vec->data[vec->size++] = value; } int vector_get(Vector *vec, int index) { if (index < 0 || index >= vec->size) { fprintf(stderr, "Index out of range\n"); exit(1); } return vec->data[index]; } void vector_set(Vector *vec, int index, int value) { if (index < 0 || index >= vec->size) { fprintf(stderr, "Index out of range\n"); exit(1); } vec->data[index] = value; } void vector_free(Vector *vec) { free(vec->data); vec->data = NULL; vec->size = 0; vec->capacity = 0; } int main() { Vector vec; vector_init(&vec); vector_push_back(&vec, 1); vector_push_back(&vec, 2); vector_push_back(&vec, 3); printf("Size: %d, Capacity: %d\n", vec.size, vec.capacity); for (int i = 0; i < vec.size; i++) { printf("%d ", vector_get(&vec, i)); } printf("\n"); vector_set(&vec, 1, 4); printf("Size: %d, Capacity: %d\n", vec.size, vec.capacity); for (int i = 0; i < vec.size; i++) { printf("%d ", vector_get(&vec, i)); } printf("\n"); vector_free(&vec); return 0; } ``` 该程序使用 `struct` 定义了一个动态数组类型 `Vector`,包含了一个指向整型数组的指针、数组的大小、数组的容量等成员。`vector_init` 函数用于初始化数组,`vector_push_back` 函数用于在数组末尾添加元素,`vector_get` 函数用于获取指定位置的元素,`vector_set` 函数用于修改指定位置的元素,`vector_free` 函数用于释放数组的内存空间。在 `main` 函数,我们首先初始化了一个数组,然后添加了三个元素,打印出数组的大小和容量以及元素内容,接着修改了第二个元素的值,再次打印出数组的大小和容量以及元素内容,最后释放了数组的内存空间。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值