求解c语言一道题,到底哪里错了

2025-05-03 11:57:47
推荐回答(5个)
回答1:

#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);
}

回答2:

#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++里面的对象的概念,但是结构体也能很好的替代。

回答3:

scanf("%s","%d","%f",i_name,i_num,i_sala);——这是明显错误,不符合scanf函数的语法。printf("%d","%f",i_num,i_sala);也是错误的。你好好看一样scanf和printf函数的控制字符串的作用与语法!错得太多,不简单改一下就可以的,所以就不改了。

回答4:

#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");//防止闪退
}

回答5:

if(0 == strcmp(i_name,name))