一段C语言程序。为什么输不出我想要的结果?
来源:百度知道 编辑:UC知道 时间:2024/06/30 17:51:19
#include "stdio.h"
#include "conio.h"
#include "string.h"
typedef struct Student
{
long studentNumber;
char *studentName;
float mark[3];
float sum;
float ave;
}Student;
void InputInformation(Student *p,int n);
void InputInformation(Student *p,int n)
{
int i,k;
float a;
printf("Input The Imformation:\n");
for(i=0;i<n;i++)
{
scanf("%d",&((p+i)->studentNumber));
scanf("%s",(p+i)->studentName);
for(k=0;k<3;k++)
{
scanf("%f",&a);
(p+i)->mark[k]=a;
}
printf("Next\n");
}
}
void main()
{
int i,k;
struct Student *stu;
InputInformation(stu,3);
for(i=0;i<3;i++)
{
printf("%6d","%5s",(stu+i
#include "conio.h"
#include "string.h"
typedef struct Student
{
long studentNumber;
char *studentName;
float mark[3];
float sum;
float ave;
}Student;
void InputInformation(Student *p,int n);
void InputInformation(Student *p,int n)
{
int i,k;
float a;
printf("Input The Imformation:\n");
for(i=0;i<n;i++)
{
scanf("%d",&((p+i)->studentNumber));
scanf("%s",(p+i)->studentName);
for(k=0;k<3;k++)
{
scanf("%f",&a);
(p+i)->mark[k]=a;
}
printf("Next\n");
}
}
void main()
{
int i,k;
struct Student *stu;
InputInformation(stu,3);
for(i=0;i<3;i++)
{
printf("%6d","%5s",(stu+i
不能只声明指针不分配存储单元。
for(k=0;k<3;i++) --- k++.
#include "stdio.h"
#include "conio.h"
#include "string.h"
typedef struct Student
{
long studentNumber;
char studentName[10]; // 要分配单元
// char *studentName;
float mark[3];
float sum;
float ave;
}Student;
// void InputInformation(Student *p,int n); // 不要它
void InputInformation(Student *p,int n)
{
int i,k;
long v;
printf("Input The Imformation:\n");
for(i=0;i<n;i++)
{
scanf("%d", &p[i].studentNumber);
scanf("%s", p[i].studentName);
for (k=0;k<3;k++) scanf("%f",&p[i].mark[k]);
printf("Next\n");
}
}
void main()
{
int i,k;
// struct Student *stu;
struct Student stu[10]; // 要分配单元,多分了不要紧,不能少了。
InputInformation(&stu[0],3);