#include"stdio.h"
int main()
{
int i;
char name[30];
char i_name[30];
int i_num[8];
float i_sala[8];
for(i=1,i<=8,i++)
scanf("%s","%d","%f",i_name,i_num,i_sala);
scanf("%s",name);
for(i=1,i<=8,i++)
if(strcmp(i_name,name))//if(strcmp(i_name,name)==0)
printf("%d","%f",i_num,i_sala);
}
#include
typedef struct Employee{
char name[30];
char id[10];
float salary;
}employee;
void main(){
employee employees[8];
char *target_name;
char *name;
char *id;
float salary;
int i;
//输入员工的信息
printf("please input employee info:\n");
for(i=0;i<8;i++){
name=(char *)malloc(sizeof(char)*30);
id =(char *)malloc(sizeof(char)*10);
scanf("%s %s %f",name,id,&salary);
strcpy(employees[i].name,name);
strcpy(employees[i].id,id);
employees[i].salary = salary;
}
//输入待查询员工的姓名
printf("please input the name of the employee whose information you want to known:\n");
target_name=(char *)malloc(sizeof(char)*30);
scanf("%s",target_name);
for(i=0;i<8;i++){
if(strcmp(target_name,employees[i].name)==0){
printf("%s %s %f\n",employees[i].name,employees[i].id,employees[i].salary);
}
}
getchar();
getchar();
}
运行的效果图如下:
c里面没有java或者c++里面的对象的概念,但是结构体也能很好的替代。
scanf("%s","%d","%f",i_name,i_num,i_sala);——这是明显错误,不符合scanf函数的语法。printf("%d","%f",i_num,i_sala);也是错误的。你好好看一样scanf和printf函数的控制字符串的作用与语法!错得太多,不简单改一下就可以的,所以就不改了。
#include
#include
main()
{
int i;
char name[30];
//二维数组,有8个员工,每个员工最长29个字符(有一个结束符\0)或14个半汉字
char i_name[8][30];
int i_num[8];
float i_sala[8];
for(i = 0; i < 8 ; i++)//数组下标从0开始
//i_name[i]本身是数组不用取地址符号,基本类型要加取地址符号,输入用空格隔开
scanf("%s %d %f",i_name[i],&i_num[i],&i_sala[i]);
scanf("%s",name);
for(i = 0; i < 8; i++)
if(strcmp(i_name[i],name) == 0)//strcmp(a,b) ab返回1
printf("%d %f",i_num[i],i_sala[i]);
system("pause");//防止闪退
}
if(0 == strcmp(i_name,name))