2 qq 33271984 qq_33271984 于 2016.03.21 20:40 提问

关于C语言结构体指针数组的问题
 #include<stdio.h>

//结构体
struct student
{
    int iNum;
    char cName[16];
    float fChineseScore;
    float fMathScore;
    float fEnglishScore;
};
typedef struct student STUDENT;


//输入
void InputTranscript(STUDENT MyClass[], int num)
{
    int i;
    printf("请输入学生的成绩信息:\n");
    for (i = 0; i < num; i++)
    {
        scanf("%d %s %f %f %f", &MyClass[i].iNum, MyClass[i].cName, &MyClass[i].fChineseScore, &MyClass[i].fMathScore, &MyClass[i].fEnglishScore);
    }
}

//输出单体
void DisplayTranscriptOne(STUDENT MyScore)
{
    int i;
    STUDENT *p1 = MyScore;
    printf("请输入需要显示成绩信息的学生的序号:");
    scanf("%d", &i);
    printf("输出学生的成绩信息:\n");
    printf("%d %s %f %f %f", (p1 + i) -> iNum, (p1 + i) -> cName, (p1 + i) -> fChineseScore, (p1 + i) -> fMathScore, (p1 + i) -> fEnglishScore);
}


//输出全体
void DisplayTranscriptAll(STUDENT *MyClass, int num)
{
    printf("输出全体学生的成绩信息\n");
    for (; MyClass < MyClass + num; MyClass++)
    {
        printf("%d %s %f %f %f", MyClass -> iNum, MyClass -> cName, MyClass -> fChineseScore, MyClass -> fMathScore, MyClass -> fEnglishScore);
    }
}

//修改
void ModifyOne(STUDENT *MyInfo)
{
    int i;
    printf("请输入需修改个人信息的学生的序号:");
    scanf("%d", &i);
    printf("请继续输入修改后的信息:");
    scanf("%d %s %f %f %f", (MyInfo + i) -> iNum, &(MyInfo + i) -> cName, &(MyInfo + i) -> fChineseScore, &(MyInfo + i) -> fMathScore, &(MyInfo + i) -> fEnglishScore);
}

void main(void)
{
    STUDENT sTranscript[10]; 
    InputTranscript(sTranscript, 10);
    DisplayTranscriptOne(sTranscript);
    DisplayTranscriptAll(*sTranscript, 10);
    ModifyOne(*sTranscript);
}

--------------------Configuration: 4 - Win32 Debug--------------------
Compiling...
4.c
C:\Users\20453\Desktop\王俊森\4\4.c(30) : error C2115: 'initializing' : incompatible types
C:\Users\20453\Desktop\王俊森\4\4.c(62) : error C2115: 'function' : incompatible types
C:\Users\20453\Desktop\王俊森\4\4.c(62) : warning C4024: 'DisplayTranscriptOne' : different types for formal and actual parameter 1
C:\Users\20453\Desktop\王俊森\4\4.c(63) : error C2115: 'function' : incompatible types
C:\Users\20453\Desktop\王俊森\4\4.c(63) : warning C4024: 'DisplayTranscriptAll' : different types for formal and actual parameter 1
C:\Users\20453\Desktop\王俊森\4\4.c(64) : error C2115: 'function' : incompatible types
C:\Users\20453\Desktop\王俊森\4\4.c(64) : warning C4024: 'ModifyOne' : different types for formal and actual parameter 1
Error executing cl.exe.

4.obj - 4 error(s), 3 warning(s)

1个回答

bealing
bealing   Rxr 2016.03.21 20:51

STUDENT *p1 = MyScore; 类型不一致,MyScore是 STUDENT,p1是STUDENT *,

bealing
bealing 然后那?还是那句话,类型不一致,MyScore是 STUDENT,p1是STUDENT *,
2 年多之前 回复
qq_33271984
qq_33271984 这个相当与 STUDENT *p1; p1 = MyScore
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
指向结构体的指针数组,应用
数组指针跟指针数组,差异看起来很小,结果却千差万别: 数组指针: struct param (*p)[100]         p+1 的结果是地址会增大 100个 sizeof(struct param),这种常用来去对二维数组进行位置的索引。 指针数组: struct param *p[100]         这里创建了一个100个struct param 指针的数组, p+1是指向
c语言结构体数组指针
#include #define N 3 struct student { long int num; char name[20]; float score[3]; float aver; }; int main() { void Input(struct student stu[]); struct student max(struct student stu[]
C语言之_指针数组、结构体、动态内存分配
1、sizeof() int main() { int a[20]; int count=sizeof(a)/sizeof(int); printf(“%d\n”,count);return 0; }2、指针数组 整型数组 int a[20];int a=10; int b=20; 指针数组 int *a[20]={&a,&b};char c=’m’;
结构体内的数组用指针表示的时候要注意指针溢出造成不必要的bug
结构体内的数组用指针表示的时候要注意指针溢出造成不必要的bug
C语言——结构体与指针引用&结构体数组与指针引用
最近在搞C语言基础储备,无意间发现在此方面的知识还有漏洞,于是上网查阅资料,看到了下面的正文内容,阅后感到思路清晰心情愉悦。所以就顺手记录了下来,以后要是又忘记可以再来看。当然最主要的还是分享给大家!~ ////////////////////////////////////////////gap//////////////////////////////////////////////
结构体数组和结构体指针
#include #include /** 结构体数组和结构体指针(或结构体数组指针) */ struct Stu{ int age; char sex; char str[10]; //结构体数组的定义与初始化 }stu_arr[2]={{10,20,"haha"},{30,40,"niha0"}}; /** 打印结构体信息 */ int printInfo(struct S
子函数返回数组(指针和结构体)
有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。 一、先来看依靠指针怎么做 例程1: 1 #include "stdio.h" 2 3 char *test(char *tmp) 4 { 5 return tmp; 6 } 7 8 void main(void) 9 { 10 printf("%s",t
C语言之对队列、结构体、指针、数组的理解
C语言之对队列、结构体、指针、数组的理解 附测试例子 #include #include #define QueueSize 100 typedef unsigned char datatype; //队列的数据元素 typedef struct {     int front;     int rear;     int count; //用于计数     
结构体指针数组 内存分配 释放
#include #include #include #include #include using namespace std;typedef class student{public:intnumber;char*name;}STU, *LPSTU;vectorvec;vector::iterator iter;mapmapstu;map::iterator itermap;void main(void){char* str1 = "YaoMing";char* str2 = "T_MAC";ch
C语言 一个例子说明结构体变量,结构体数组和结构体指针
输入三个学生的个人信息 包含学号 姓名和三门学科的成绩 输出平均成绩最高的学生的学号 姓名 各科成绩以及平均成绩 代码如下(谭浩强c程序设计的例子)#include&amp;lt;stdio.h&amp;gt;struct Student {int num; char name[20]; float score[3]; float aver; };int main() { void input(struct Stu