
各位大虾你们好啊,我这里有个程序,想把它弄成运行后能返回主菜单,而不是直接结束,需要一个返回语句 10
不知道应该怎么加上去,可以请你们帮忙调试一下么?代码贴在下面#include<stdio.h>#include"conio.h"structstudent/*定义结构体*...
不知道应该怎么加上去,可以请你们帮忙调试一下么?代码贴在下面
#include<stdio.h>
#include "conio.h"
struct student /*定义结构体*/
{
int number;
char name[10];
float score[3];
float ave;
}stu[10],temp;
int b[11];
void input()/*申明一个input函数*/
{
int i = 0;
printf("输入学生成绩(十个)");
for(i=0;i<10;i++) {
scanf("%d",&b[i]);/*把输入的数据赋值进入数组a[i]*/
}
}
void sort(int human) {
int temp = 0;
int i = 0;
int j= 0;
for(i = 0;i<human-1;i++)
for(j = i+1;j<human;j++)
if(b[j]>b[i])
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
printf("从大到小的排名:");
for(i = 0;i<human;i++)
printf("%d ",b[i]);
printf("\n");
}
void reinput() {
printf("再输入一个学生的成绩:");
scanf("%d",&b[10]);
sort(11);
}
void resort(int human) {
int temp = 0;
int i=0;
int j= 0;
for(i = 0;i<human-1;i++)
for(j = i+1;j<human;j++)
if(b[j]<b[i])
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
printf("从小到大的排名:");
for(i = 0;i<human;i++)
printf("%d ",b[i]);
printf("\n");
}
int scan(char style){
printf("请选择排序方式(a为升序b为降序)\n"); /*选择一种排序方法*/
printf("请选择排序方式(a为升序b为降序)\n");
scanf("%c",&style);
scanf("%c",&style);
printf("请稍等\n");
}
void sort2(int a[],int n, char style)/*定义一个排序的函数*/
{
int i,j,t;
if(style=='a') /*进行从小到大的排序*/
{
for(i=0;i<n-1;i++)
{
for(j=n-1;j>=i;j--)
if(a[j+1]<a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
else if(style=='d') /*进行从大到小的排序*/
{
for(i=0;i<n-1;i++)
{
for(j=n-1;j>=i;j--)
if(a[j+1]>a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
}
void sort3(float *p) /*排序*/
{
int i,j,k;
float t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(p+j)>*(p+k))
k=j;
if(k!=i)
{
t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
}
}
}
void function_1(){
input();
sort(10);
reinput();
resort(11);
system("pause");
system("cls");
}
void function_2()
{
int i,n,a[10000];/*输入一个足够大的数组来存放分数,可以把10000看做是无穷*/
char style;
scan(style);
printf("请输入学生人数\n");
scanf("%d",&n);
printf("请输入%d人的分数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("经过排序之后如下:\n");
sort2(a,n,style); /*调用函数*/
for(i=0;i<n;i++)
printf("%d\t",a[i]);
getch();
} 展开
#include<stdio.h>
#include "conio.h"
struct student /*定义结构体*/
{
int number;
char name[10];
float score[3];
float ave;
}stu[10],temp;
int b[11];
void input()/*申明一个input函数*/
{
int i = 0;
printf("输入学生成绩(十个)");
for(i=0;i<10;i++) {
scanf("%d",&b[i]);/*把输入的数据赋值进入数组a[i]*/
}
}
void sort(int human) {
int temp = 0;
int i = 0;
int j= 0;
for(i = 0;i<human-1;i++)
for(j = i+1;j<human;j++)
if(b[j]>b[i])
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
printf("从大到小的排名:");
for(i = 0;i<human;i++)
printf("%d ",b[i]);
printf("\n");
}
void reinput() {
printf("再输入一个学生的成绩:");
scanf("%d",&b[10]);
sort(11);
}
void resort(int human) {
int temp = 0;
int i=0;
int j= 0;
for(i = 0;i<human-1;i++)
for(j = i+1;j<human;j++)
if(b[j]<b[i])
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
printf("从小到大的排名:");
for(i = 0;i<human;i++)
printf("%d ",b[i]);
printf("\n");
}
int scan(char style){
printf("请选择排序方式(a为升序b为降序)\n"); /*选择一种排序方法*/
printf("请选择排序方式(a为升序b为降序)\n");
scanf("%c",&style);
scanf("%c",&style);
printf("请稍等\n");
}
void sort2(int a[],int n, char style)/*定义一个排序的函数*/
{
int i,j,t;
if(style=='a') /*进行从小到大的排序*/
{
for(i=0;i<n-1;i++)
{
for(j=n-1;j>=i;j--)
if(a[j+1]<a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
else if(style=='d') /*进行从大到小的排序*/
{
for(i=0;i<n-1;i++)
{
for(j=n-1;j>=i;j--)
if(a[j+1]>a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
}
void sort3(float *p) /*排序*/
{
int i,j,k;
float t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(p+j)>*(p+k))
k=j;
if(k!=i)
{
t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
}
}
}
void function_1(){
input();
sort(10);
reinput();
resort(11);
system("pause");
system("cls");
}
void function_2()
{
int i,n,a[10000];/*输入一个足够大的数组来存放分数,可以把10000看做是无穷*/
char style;
scan(style);
printf("请输入学生人数\n");
scanf("%d",&n);
printf("请输入%d人的分数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("经过排序之后如下:\n");
sort2(a,n,style); /*调用函数*/
for(i=0;i<n;i++)
printf("%d\t",a[i]);
getch();
} 展开
2个回答
展开全部
哼哼,兄弟写了一大串啊。我看了半天好像void function_2()是主函数吧,那么想把它弄成运行后能返回主菜单,而不是直接结束,需要的是一个开关假设为log(随便什么都可以),先在定义处初始化即int log=1;再定一个char c;
再在执行语句在开头写
while(log)
{执行语句(内容照办);/*之后要加返回语句了*/
printf("stop input 'n',else:");
c=getchar();
if(c=='N'||c=='n')
log=0;
esle log=1;}
你可以试试,理论上没问题。
再在执行语句在开头写
while(log)
{执行语句(内容照办);/*之后要加返回语句了*/
printf("stop input 'n',else:");
c=getchar();
if(c=='N'||c=='n')
log=0;
esle log=1;}
你可以试试,理论上没问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询