我的代碼無法運行,我該如何修復它我想我不明白在使用指標、動態分配、結構時我哪里出錯了
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct nhanVien{
int code;
char name[50];
char sex[50];
int numb;
int wage;
};
void input(nhanVien *worker,int n){
for(int i=0;i<n;i ){
printf("Nhap ma nhanVien : ");
scanf("%d",(worker->code i));
}
}
int main(){
nhanVien *worker;
int n;
printf("Nhap so luong nhan vien : ");
scanf("%d",&n);
worker = (nhanVien*)malloc(n*sizeof(nhanVien));
input(worker,n);
for(int i=0;i<n;i ){
printf("Nhap ma nhanVien : %d \n",*(worker->code i));
}
free(worker);
}
一元'*'的無效型別引數(有'int')C中的錯誤這是影像在此處輸入影像描述
uj5u.com熱心網友回復:
名稱nhanVien未宣告。宣告了型別說明符struct nhanVien。
所以你需要使用這個名字作為例子
void input( struct nhanVien *worker,int n){
或者
struct nhanVien *worker;
或者
worker = (struct nhanVien*)malloc(n*sizeof( struct nhanVien));
這個 scanf 呼叫
scanf("%d",(worker->code i));
是不正確的。你需要寫
scanf("%d", &( worker i )->code);
或者
scanf("%d", &worker[i].code);
還有這個 printf 的呼叫
printf("Nhap ma nhanVien : %d \n",*(worker->code i));
是不正確的。你需要寫
printf("Nhap ma nhanVien : %d \n", worker[i].code);
uj5u.com熱心網友回復:
我在您的代碼中發現了許多問題,worker->code i應該是worker[i].code;你缺少typedef的struct型別。基本上,你想要類似的東西
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedef struct {
int code;
char name[50];
char sex[50];
int numb;
int wage;
} nhanVien;
void input(nhanVien *worker,int n) {
for(int i=0; i<n; i ) {
printf("Nhap ma nhanVien : ");
scanf("%d", &worker[i].code);
}
}
int main() {
nhanVien *worker;
int n;
printf("Nhap so luong nhan vien : ");
scanf("%d",&n);
worker = (nhanVien*)malloc(n*sizeof(nhanVien));
input(worker,n);
for(int i=0; i<n; i ) {
printf("Nhap ma nhanVien : %d \n",worker[i].code);
}
free(worker);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363008.html
上一篇:如何使用回圈運行ac程式以在不使用乘法、除法和模運算子的情況下找到兩個數字的余數?
下一篇:需要有關所需輸出的幫助
