求一个c++结构体数组相关程序

定义一个结构体数组,输入结构体数组元素,并编写函数对结构体数组中插入记录

要插入记录的话,需要将插入位置及其后续的记录全部后移一个位置,然后在插入位置放置新记录内容即可

struct student
{
    char name[20];
    float score;
}stu[50];
int stunum = 0;
void main()
{
    printf("请输入学生数量:");
    scanf("%d",&stunum);
    int i;
    for(i=0;i<stunum;i++)
        scanf("%s %f",stu.name,&stu[i].score);
    printf("请输入要插入的学生姓名,成绩和插入位置:");
    student newstu;
    int pos;
    scanf("%s %d %d",newstu.name,&newstu.score,&pos);
    if(pos >= stunum || pos < 0)  //加入pos的位置不在学生数量范围,则加入末尾
        stu[stunum++] = newstu;
    else
    {
        for(i=stunum;i>=pos;i--)
            stu[i] = stu[i-1];
        stu[pos] = newstu;
        stunum++;
    }
    for(i=0;i<stunum;i++)
        printf("姓名:%s\t成绩:%f\n",stu[i].name,stu[i].score);
}

 

#include <iostream>
using namespace std;
struct Person //声明结构体类型Person
{
   char name[20];
   int count;
};
int main( )
{
   //定义Person类型的数组,内容为3个候选人的姓名和当前的得票数
   Person leader[3]={"Li",0,"Zhang",0,"Fun",0};
   int i,j;
   char leader_name[20]; //leader_name为投票人所选的人的姓名
   for(i=0;i<10;i++)
   {
      cin>>leader_name; //先后输入10张票上所写的姓名
      for(j=0;j<3;j++) //将票上姓名与3个候选人的姓名比较
         //如果与某一候选人的姓名相同,就给他加一票
         if(strcmp(leader_name,leader[j].name)==0) leader[j].count++;
   }
   cout<<endl;
   for(i=0;i<3;i++) //输出3个候选人的姓名与最后得票数
   {
      cout<<leader[i].name<<":"<<leader[i].count<<endl;
   }
   return 0;
}

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢