问题描述
- 为什么在调试的时候会发生程序异常
-
#define _CRT_SECURE_NO_DEPRECATE#include
#include
void main() {
struct Member { char ID[7]; char name[10]; char sex; int age; char rank; union grade { char vip; int gen; }mem_grade; int points; }mem; printf("请输入会员信息:n"); printf("会员编号:"); scanf("%s", &mem.ID); printf("会员姓名:"); scanf("%s", mem.name); printf("会员性别:"); scanf("%c", &mem.sex); getchar(); printf("会员年龄:"); scanf("%d", &mem.age); getchar(); printf("会员等级:"); scanf("%c", &mem.rank); getchar(); if (mem.rank == 'v') { printf("VIP级别。n"); scanf("%c", &mem.mem_grade.vip); } else if (mem.rank == 'g') { printf("普通会员级别。n"); scanf("%d", mem.mem_grade.gen); } printf("ID name sex age rank 级别n"); printf("%s %s %c %d %c ", mem.ID, mem.sex, mem.sex, mem.age, mem.rank); if (mem.rank == 'v') printf(" %c", mem.mem_grade.vip); else printf(" %d", mem.mem_grade.gen); system("pause");
}
解决方案
把代码贴全了。
#include 后面是什么?
解决方案二:
#include
#include
解决方案三:
scanf("%s", &mem.ID);
改为:
scanf("%s", mem.ID); //ID是数组,不用再加&
解决方案四:
scanf("%d", mem.mem_grade.gen);
改为:
scanf("%d", &mem.mem_grade.gen);
解决方案五:
printf("%s %s %c %d %c ", mem.ID, mem.sex, mem.sex, mem.age, mem.rank);
改为:
printf("%s %s %c %d %c ", mem.ID, mem.name, mem.sex, mem.age, mem.rank);
解决方案六:
#include <stdio.h>
#include <stdlib.h>
解决方案七:
但是还是会出现异常
解决方案八:
什么异常?贴出来看看。
#include "stdafx.h"
#include <stdlib.h>
void main()
{
struct Member
{
char ID[7];
char name[10];
char sex;
int age;
char rank;
union grade
{
char vip;
int gen;
}mem_grade;
int points;
}mem;
printf("请输入会员信息:n");
printf("会员编号:");
scanf("%s",mem.ID);
printf("会员姓名:");
scanf("%s", mem.name);
printf("会员性别:");
scanf("%c", &mem.sex);
getchar();
printf("会员年龄:");
scanf("%d", &mem.age);
getchar();
printf("会员等级:");
scanf("%c", &mem.rank);
getchar();
if (mem.rank == 'v') {
printf("VIP级别。n");
scanf("%c", &mem.mem_grade.vip);
}
else if (mem.rank == 'g') {
printf("普通会员级别。n");
scanf("%d", &mem.mem_grade.gen);
}
printf("ID name sex age rank 级别n");
printf("%s %s %c %d %c ", mem.ID, mem.name, mem.sex, mem.age, mem.rank);
if (mem.rank == 'v') printf(" %c", mem.mem_grade.vip);
else printf(" %d", mem.mem_grade.gen);
system("pause");
}
时间: 2024-11-02 21:05:28