站点图标 陌路寒暄

结构体---职工信息结构体

结构体---职工信息结构体

时间: 1ms        内存:128M

描述:

编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。

输入:

输入5个员工的职工姓名、工作年限、工资总额

输出:

输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息

示例输入:

zhang1 5 1000
zhang2 10 2000
zhang3 20 3000
zhang4 40 4000
zhang5 50 5000

示例输出:

原始工资
姓名    年限    工资
zhang1    5    1000
zhang2    10    2000
zhang3    20    3000
zhang4    40    4000
zhang5    50    5000
加薪后工资
姓名    年限    工资
zhang1    5    1000
zhang2    10    2000
zhang3    20    3000
zhang4    40    4100
zhang5    50    5100

提示:

参考答案(内存最优[0]):

#include<iostream>
using namespace std;
struct employee
{
    char name[20];
    int age;
    float money;
}employ[5];
int main()
{
    int i;
    for(i=0;i<5;i++)
    {
        cin>>employ[i].name>>employ[i].age>>employ[i].money;
    }
    cout<<"原始工资"<<endl;
    cout<<"姓名"<<"    "<<"年限"<<"    "<<"工资"<<endl;
    cout<<employ[0].name<<"    "<<employ[0].age<<"    "<<employ[0].money<<endl;
    cout<<employ[1].name<<"    "<<employ[1].age<<"    "<<employ[1].money<<endl;
    cout<<employ[2].name<<"    "<<employ[2].age<<"    "<<employ[2].money<<endl;
    cout<<employ[3].name<<"    "<<employ[3].age<<"    "<<employ[3].money<<endl;
    cout<<employ[4].name<<"    "<<employ[4].age<<"    "<<employ[4].money<<endl;
     for(i=0;i<5;i++)
     {
        if(employ[i].age>30)
        employ[i].money+=100;

     }
      cout<<"加薪后工资"<<endl;
    cout<<"姓名"<<"    "<<"年限"<<"    "<<"工资"<<endl;
    cout<<employ[0].name<<"    "<<employ[0].age<<"    "<<employ[0].money<<endl;
    cout<<employ[1].name<<"    "<<employ[1].age<<"    "<<employ[1].money<<endl;
    cout<<employ[2].name<<"    "<<employ[2].age<<"    "<<employ[2].money<<endl;
    cout<<employ[3].name<<"    "<<employ[3].age<<"    "<<employ[3].money<<endl;
    cout<<employ[4].name<<"    "<<employ[4].age<<"    "<<employ[4].money<<endl;
}

参考答案(时间最优[0]):

//编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。
#include<stdio.h>
struct worker 
{  
	char name[20]; 
	int year,sal; 
}worker[5];   

void main() 
{
	int i;  
	for(i=0;i<5;i++)
		scanf("%s%d%d",worker[i].name,&worker[i].year,&worker[i].sal);
	printf("原始工资\n%s    %s    %s","姓名","年限","工资"); 
	for(i=0;i<5;i++)     
		printf("\n%s    %d    %d",worker[i].name,worker[i].year,worker[i].sal);  
	for(i=0;i<5;i++) 
		if(worker[i].year>30)
			worker[i].sal=worker[i].sal+100;   
	printf("\n加薪后工资\n%s    %s    %s","姓名","年限","工资");  
	for(i=0;i<5;i++)    
		printf("\n%s    %d    %d",worker[i].name,worker[i].year,worker[i].sal);
 } 

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版