没有出现菜单窗口,代码没有出错,就是运行不出来。请问哪里出错呢?
代码发出来看看
这具体要看代码才知道啊。也许显示菜单的代码都有问题就崩溃了
if,if,if
和
if ;else if;else if
逻辑原理真的一样么?
改一下试试,把else if全部换为同一个选择条件等级的if
//5、用指针的方法实现。编写一个函数,将三个整数按由小到大的顺序排序
//数据的输入输出在主函数中实现
//(即:通过指针作为函数参数,在函数中排序后,变化的数据能直接反映到主函数中)
#include<iostream>
#include<stdio.h>
using namespace std;
void minMax(int * a1, int *a2, int *a3)
{
int temp;
if (*a1 > *a2)
{
temp = *a2;
*a2 = *a1;
*a1 = temp;
}
if(*a1>*a3)
{
temp = *a3;
*a3 = *a1;
*a1 = temp;
}
if (*a2 > *a3)
{
temp = *a2;
*a2 = *a3;
*a3 = temp;
}
}
int main()
{
int a = 0, b = 0, c = 0;
int *a1 = 0, *a2 = 0, *a3 = 0;
cout << "请输入第一个整数:" << endl;
cin >> a;
cout << "请输入第二个整数:" << endl;
cin >> b;
cout << "请输入第三个整数:" << endl;
cin >> c;
a1 = &a;
a2 = &b;
a3 = &c;
minMax(a1, a2, a3);
cout << a << "<" << b << "<" << c << endl;
printf("%d %d %d ", a, b, c);
system("pause");
return 0;
}
可以进行比较
所以,小小的else if和if竟然相差这么多,原理,在我的理解看来就是,else if就像是不满足if的条件编译器选择的第二条路,如果不是同样的三岔路口的话,用户输入的数字,因为输入的先后会得到不同的备用选项
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
//#include "head.h"
void printf_menu()
{
int i;
system("color F0");
char *sentence[8] = { "创建学生数据","查找学生数据",
"更新学生数据","排序学生数据",
"统计学生数据","保存学生数据",
"输出学生数据","退出学生数据"};
printf("\n\n\t\t\t\t\t\t 学生信息管理系统\n\t\t\t");
for(i = 0; i < 30; i++) printf("*");
printf("主菜单");
for(i = 0; i < 30; i++) printf("*");
printf("\n\n\t\t\t*\t\t\t\t\t\t\t\t *\n");
for(i = 1; i < 9; i += 2){
printf("\t\t\t*\t%d、%s\t\t\t%d、%s\t\t *\n",i,sentence[i-1],i+1,sentence[i]);
printf("\n\n\t\t\t*\t\t\t\t\t\t\t\t *\n");
}
printf("\t\t\t");
for(i = 0; i < 66; i++) printf("*");
printf("\n\t\t\t请输入你的选择:");
}
int main()
{
int sel, exit = 1;
while (exit){
printf_menu();
scanf("%d", &sel);
switch(sel){
case 1: printf("您选择了:1.创建学生数据模块\n");break;
case 2: printf("您选择了:2.查找学生数据模块\n");break;
case 3: printf("您选择了:3.更新学生数据模块\n");break;
case 4: printf("您选择了:4.排序学生数据模块\n");break;
case 5: printf("您选择了:5.统计学生数据模块\n");break;
case 6: printf("您选择了:6.保存学生数据模块\n");break;
case 7: printf("您选择了:7.输出学生数据模块\n");break;
case 8: printf("谢谢使用,再见!\n"); exit = 0;break;
default:printf("选择错误,请重新选择!\n"); break;
}
printf("按任意键继续...");
getch();
system("cls");
}
return 0;
}