用c语言写一个简单的菜单程序,一个主函数至少四个子函数急求!!就像这样的。 50

用c语言写一个简单的菜单程序,一个主函数至少四个子函数急求!!就像这样的。#include<stdio.h>#defineN4voidfun1(inta[],intn)/... 用c语言写一个简单的菜单程序,一个主函数至少四个子函数急求!!就像这样的。#include<stdio.h>#define N 4void fun1(int a[],int n) //建立数组{int i;printf("输入数组a[%d]\n",n);for(i=0;i<N;i++)scanf("%d",&a[i]);} void fun2(int a[],int n) //输出数组{int i;for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n"); } void fun3(int a[],int n) //数组升序排序:选择排序法{int i,j,t;for(j=1;j<n;j++) //N次比较for(i=0;i<j;i++) //每趟中比j次 if(a[i]>a[j]) //与a[i]后面的元素进行比较{t=a[i];a[i]=a[j];a[j]=t;}} void fun4(int a[],int n) //查找数据{int b,i,k=0;printf("输入要查找的数: ");scanf("%d",&b);for(i=0;i<n;i++){if(a[i]==b)printf("a[%d]=%d\n",i,b);else k++; if(k==n) printf("没有这个数\n");}} void fun5(int a[],int n) //逆序输出{int i;for(i=n-1;i>=0;i--)printf("%d ",a[i]);printf("\n"); } void main() {int num,a[N]; printf("1.建立数组\n");printf("2.输出数组\n");printf("3.数组排序\n");printf("4.查找数据\n");printf("5.逆序输出\n");printf("0.退出程序\n"); while(1==1){printf("\n请选择功能:");scanf("%d",&num);switch(num){case 5:fun5(a,N);break;case 4:fun4(a,N);break;case 3:fun3(a,N);break;case 2:fun2(a,N);break;case 1:fun1(a,N);break;case 0:return ;}}} 展开
 我来答
匿名用户
2016-06-24
展开全部
分析:问题库(QAS)用外部的配置文件保存,每次运行前先载入库中已经建立的问题。然后再进入操作选择。完整代码如下:/*1.暂时不考虑汉字;2.可以用链表优化;3.将每一种操作封装成一个函数;*/#include#include#include#include////////////////////////////////////////////////////////////////////////////字符串最大长度#defineMAX_STR_LEN2048//题库上限#defineMAX_QAS_LEN1024//配置文件路径#defineQAS_FILE_PATH"d:\\qasconfig.txt"////////////////////////////////////////////////////////////////////////////问题结点typedefstructtagQASNode{charQuestion[MAX_STR_LEN];charAnswer[MAX_STR_LEN];doubleScore;boolIsAnswered;}QASNode;//问题库QASNode*g_QASLib[MAX_QAS_LEN];intg_QASIndex=0;////////////////////////////////////////////////////////////////////////////添加boolInsertToLib(char*pQuestion,char*pAnswer,doublescore){if(pQuestion==NULL||strcmp(pQuestion,"")==0||pAnswer==NULL)returnfalse;QASNode*pNewNode=(QASNode*)malloc(sizeof(QASNode));memset(pNewNode,0L,sizeof(QASNode));strcpy_s(pNewNode->Question,pQuestion);strcpy_s(pNewNode->Answer,pAnswer);pNewNode->Score=score;g_QASLib[g_QASIndex++]=pNewNode;returntrue;}//随机一个不重复的序号intGetQuestionIndex(){intretVal=-1;inttryCnt=0;while(tryCnt++IsAnswered){retVal=randVal;break;}}returnretVal;}//////////////////////////////////////////////////////////////////////////intmain(){//打开配置文件FILE*pStream=NULL;if(fopen_s(&pStream,QAS_FILE_PATH,"a+")!=0){printf_s("Opentheconfigfilefailed.\n");return-1;}//加载已有的QASfseek(pStream,0L,SEEK_END);intfileSize=ftell(pStream);fseek(pStream,0L,SEEK_SET);while(!feof(pStream)&&fileSize){if(g_QASIndexQuestion);printf_s("Inputanswer:");chartempA[MAX_STR_LEN]={0};fflush(stdin);gets_s(tempA,MAX_STR_LEN);if(strcmp(tempA,g_QASLib[currentIndex]->Answer)==0){printf("Right!\n");totalSocore+=g_QASLib[currentIndex]->Score;g_QASLib[currentIndex]->IsAnswered=true;}else{printf("Wrong!\n");}}else{printf("你已经答对了所有的问题!\n");}}break;case2:{if(currentIndex!=-1){printf("Quest:%s\nScore=%.2f\n",g_QASLib[currentIndex]->Question,g_QASLib[currentIndex]->Score);}else{printf("请先选择\"回答问题\"!\n");}}break;case3:{//一次只添加一个问题if(g_QASIndexQuestion,g_QASLib[i]->Answer,g_QASLib[i]->Score);}}break;default:break;}}printf("\n");return0;}运行起来后先建立问题库!
cdyzxy
2018-04-12 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3543万
展开全部
#include<stdio.h>
#define N 10
struct SSTUDENT { char name[20]; float score; };
int mMenu()
{ int rt=0;
char str[80];
  printf("\n\n*********************\n\n");
printf("  选择菜单\n");
printf("------------\n");
printf(" 1.输入成绩\n 2.排序输出\n 3.不及格列表\n 0.退出\n");
printf("请输入功能项前的数字:"); scanf("%s",str);
if ( str[0]>='0' && str[0]<='3' ) rt=str[0]-'0';
return rt;
}
int mInputScore(SSTUDENT *mStu,int n)
{ int i;
printf("\n请顺序输入学生姓名和成绩(用空格分开):\n"); 
for ( i=0;i<n;i++ ) { printf("%d) ",i+1); scanf("%s %f",mStu[i].name,&mStu[i].score); }
return n;
}
void mSort(SSTUDENT *mStu,int n)
{ int i,j,k,index[N];
  if ( n>0 && n<=N )

for ( i=0;i<n;i++ ) index[i]=i;
for ( i=0;i<n-1;i++ )
for ( j=i+1;j<n;j++ )
if ( mStu[index[i]].score<mStu[index[j]].score )
{ k=index[i]; index[i]=index[j]; index[j]=k; }
printf("\n成绩统计列表:\n");
for ( i=0;i<n;i++ ) printf("%s\t%.1f\n",mStu[index[i]].name,mStu[index[i]].score);
}
}
void mEList(SSTUDENT *mStu,int n)
{ int i;
if ( n>0 && n<=N )
{ printf("\n不及格学生名单:\n");
for ( i=0;i<n;i++ ) if ( mStu[i].score<60 ) printf("%s\n",mStu[i].name);
}
}
void main()
{
int loop=1,s,n;
SSTUDENT mStu[N];
n=0;
while ( loop )
{ s=mMenu();
switch ( s )
{
case 0: loop=0; break;
case 1: n=mInputScore(mStu,N); break;
case 2: mSort(mStu,n); break;
case 3: mEList(mStu,n); break;
default: break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夫顺rW
2018-04-12 · TA获得超过733个赞
知道小有建树答主
回答量:610
采纳率:82%
帮助的人:134万
展开全部
1 函数sum应该定义在main之外. 2 参数类型应写在sum的括号里面. 而不是函数内部. 3 调用sum时, 应先声明. 4 调用sum参数应为x,y 而不是x+y 5 x y应先赋值或输入. 修正 void main(){ int x=1,y=2; int sum(int a, int b); printf("%d\n", sum(x,y...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-06-23
展开全部
#includemain(){printf{"111+222=%d",111+222);getch();}
追问
什么鬼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-04-12 · TA获得超过2029个赞
知道小有建树答主
回答量:9715
采纳率:0%
帮助的人:1065万
展开全部
嗯嗯 简单程序 4个子函数 我能实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式