数组动态规划,变量自动记录
程序员文章站
2022-06-26 19:50:34
...
在学生体结构中,不需要从键盘直接获得学生人数,而是从键盘输入学生信息,自动记录人数
基础代码:
#include <iostream>
using namespace std;
//函数原型
struct Student{
int ID;//char ID[15]; string
int age;
};
int maxInt(Student array[], int number)
{
Student temp = array[0];
int location = 0;
for (int i = 0; i<number; i++)
{
if (temp.age <= array[i].age)
{
temp = array[i];
location = i;
}
}
return location;
}
void outPut(int array[], int number)
{
for (int i = 0; i<number; i++)
{
cout << array[i] << " ";
}
cout << endl;
}
int main()
{
Student stu[5] = { { 1, 18 }, { 2, 20 }, { 3, 17 }, { 4, 19 }, { 5, 16 } };
int location = maxInt(stu, 5);
cout << stu[location].ID << " " << stu[location].age << endl;
return 0;
}
修改后能动态记录:
struct Student* st[99]; //开辟一个结构体指针数组,用来存放输入的学生实例地址
cout << "请输入多组学生的id和age" << endl;
int i = 0; //计数
while (1){
int ID = 0;
int age = 0;
cin >> ID;
if (ID == -1)
break;
cin >> age;
st[i] = (struct Student*)malloc(sizeof(struct Student));
st[i]->ID = ID;
st[i]->age = age;
i++;
}
cout << "总共有" << i << "个学生!" << endl;
for (int j = 0; j < i; ++j) {
cout << "第" << j << "个学生的信息:" << st[j]->ID << st[j]->age << endl;
}
malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。
上一篇: golang编写Hello World
下一篇: 我出去不方便,你要全小区知道
推荐阅读