void ListInput(SqList *P){
int M;
ElemType e;
printf("\n請輸入表中元素的個數:");
scanf_s("%d", &M);
printf("\n");
for (int i = 1; i <= M; i++)
{
printf("請輸入表中第(%d)個資料:",P.length+1);
scanf_s("%d%d", &e.num, &e.grade);
ListInsert(P, e);
}
printf("按成績由大到小輸出為:\n");
ShowList(P);
}
printf("請輸入表中第(%d)個資料:",P.length+1);
這一句錯誤顯示P之前要包含型別別,該怎么改?
uj5u.com熱心網友回復:
不清楚你的鏈表啥結構,但是這句肯定有問題把P.length+1改為P->length+1uj5u.com熱心網友回復:
就是這個SqList 在哪里定義的?要把頭檔案包進來uj5u.com熱心網友回復:
看一下源程式// 順序表.cpp : 定義控制臺應用程式的入口點。
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
#include <iostream>
using namespace std;
#include <stdio.h>
#include <conio.h>
typedef struct {
int num;
int grade;
}ElemType;
typedef struct {
ElemType *elem;
int length;
int listsize;
}SqList;
void InitList(SqList *P){
P->listsize = 10;
P->elem = (ElemType*)malloc(P->listsize*sizeof(ElemType));
P->length = 0;
}
void DestroyList(SqList *P){
free(P->elem);
}
int ListInsert(SqList *P, ElemType e){
int i, j;
if (P->length = P->listsize){
P->listsize = P->listsize + 10;
P->elem = (ElemType*)realloc(P->elem, (P->listsize)*sizeof(ElemType));
}
/*找插入點位置*/
for (i = 0; i < P->length;i++){
if (e.grade>P->elem[i].grade)
break;
}
/*向后移動資料*/
for (j = P->length + 1; j > i; j--)
P->elem[i] = e;
P->length = P->length + 1;
return 1;
}
void ShowList(SqList *P){
int i;
for (i = 0; i < P->length; i++){
printf("\n(%d,%d)", P->elem[i].num, P->elem[i].grade);
}
}
void ListInput(SqList *P){
int M;
ElemType e;
printf("\n請輸入表中元素的個數:");
scanf_s("%d", &M);
printf("\n");
for (int i = 1; i <= M; i++)
{
printf("請輸入表中第(%d)個資料:",P->length+1);
scanf_s("%d%d", &e.num, &e.grade);
ListInsert(P, e);
}
printf("按成績由大到小輸出為:\n");
ShowList(P);
}
int main(){
SqList L;
InitList(&L);
ListInput(&L);
ShowList(&L);
DestroyList(&L);
_getch();
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113055.html
標籤:茶館
