c语言入门 继续求助哪里不对了这个......

求助C语言题_百度知道
求助C语言题
请各位帮忙由计算机想四位数请猜四位数少输入四位数字计算机首先判断四位数字几位猜并且数字几位位置结显示给提示请再猜直猜计算机所想四位数少止
我有更好的答案
按默认排序
#include &stdio.h&#include &stdlib.h&#include &time.h&#define N 4/*随机抽N数*/#define NUM 8/*NUM猜数机*/void detect(char s[]){ int i,j, int a,b; char ch[N]; for(num=0;num#num++) {
printf(&第%d机:&,num+1); for(i=0;i&N;i++) {
ch[i]=getchar();
if(ch[i]&='0'&&ch[i]&='9')
for(j=0;j&i;j++)
if(ch[i]==ch[j])
if(j&i) i--;
putchar(ch[i]);
for(j=0;j&N;j++)
if(ch[i]==s[j])
if(i==j) a++;
i--; } printf(&
%dA%dB\n&,a,b); if(a==N)
printf(&恭喜答!\n&); } } if(num==NUM)
printf(&遗憾确答案:%s\n&,s);}main(){ int i,j; char s[N+1]; srand(time(0)); for(i=0;i&N;i++) {
s[i]=rand()%10;
for(j=0;j&i;j++)
if(s[i]==s[j])
if(j&i) i--;
s[i]+='0';
putchar('*');
} } s[i]='\0'; printf(&\n总共%d机\n&,NUM); detect(s);}
#include &stdlib.h&#include &stdio.h&#include &time.h& struct right_place {}; int main (void){
int creatDialog (int x, int *p );
void rndProduce (int numDft[]);
struct right_place numCompare (int numDft[], int numIn[]);
int dialog, quitOrContinue, allQ
int numDft[4], numIn[4], result[2];
struct right_place compareB
creatDialog (1, NULL);
allQuit = 1;
while (allQuit == 1)
creatDialog (7, NULL);
rndProduce (numDft);
quitOrContinue = 1;
while (quitOrContinue == 1)
dialog = 2;
while (dialog == 2)
creatDialog (2, numIn);
dialog = creatDialog (3, numIn);
compareBack = numCompare (numDft, numIn);
result[0] = compareBack.
result[1] = compareBack.
quitOrContinue = creatDialog (4, result);
if (quitOrContinue == 2)
allQuit = creatDialog (5, numDft);
if (quitOrContinue == 3)
allQuit = 1;
if (quitOrContinue == 4)
allQuit = 2;
if (allQuit == 2)
creatDialog (6, NULL);
getchar ();
return 0;} int creatDialog (int x, int *p){
switch (x)
printf (&************************************************************************\n&);
creatDialog (0, NULL);
printf (&在本游戏中,你需要输入四个数字,\n然后电脑会给出你猜测的正确情况。&);
printf (&电脑会用它之前生成的\n四位数与之你的输入比较,然后告诉你&);
printf (&你猜对了几个数字,包\n括数值和顺序的信息.\n&);
creatDialog (0, NULL);
printf (&请输入你猜测的四位数字(用空格、回车、或Tab隔开):\n&);
for (i = 0; i & 4; i++, p++)
scanf (&%i&, p);
creatDialog (0, NULL);
printf (&你输入的数字是:%i %i %i %i ,确认请输入“1”,重新输入按“2”。\n&, *p, *(p + 1), *(p + 2), *(p + 3));
scanf (&%i&, &back);
creatDialog (0, NULL);
printf (&你输入的数字中:\n数值和位置都正确的有%i个,\n数值正确但位置不正确的有%i个.\n&, *p, *(p+1));
if ((*p) == 4)
printf (&恭喜你,答对了!\n&);
printf (&继续游戏吗?继续请输入“1”,退出游戏请输入“2”。\n&);
scanf (&%i&, &back);
if (back == 1)
if (back == 2)
printf (&继续吗?继续请输入“1”,显示正确答案请输入“2”。\n&);
scanf (&%i&, &back);
creatDialog (0, NULL);
printf (&正确答案是:%i %i %i %i,再接再厉啊!\n&, *p, *(p + 1), *(p + 2), *(p + 3));
printf (&继续游戏吗?继续请输入“1”,退出游戏请输入“2”。\n&);
scanf (&%i&, &back);
creatDialog (0, NULL);
printf (&感谢你玩本游戏,再见!\n按任意键退出\n&);
creatDialog (0, NULL);
printf (&新的游戏开始了!GOOD LUCK!\n&);
}} void rndProduce (int numDft[]){
srand( (unsigned)time( NULL ) ) ;
for ( i = 0; i & 4; i++)
numDft[i] = rand () % 10;
//printf (&%i %i %i %i\n&, numDft[0], numDft[1], numDft[2], numDft[3]);} struct right_place numCompare (int numDft[], int numIn[]){
struct {int D int In;} flag[4] = { 1, 1, 1 ,1 ,1, 1, 1, 1 };
struct right_place result = { 0, 0 };
for (i = 0; i & 4; i++)
if (numDft[i] == numIn[i])
(result.right)++;
flag[i].Dft = 0;
flag[i].In = 0;
for (i = 0; i & 4; i++)
for (j = 0; j & 4; j++)
if (flag[i].Dft && flag[j].In && numDft[i] == numIn[j])
(result.place)++;
flag[i].Dft = 0;
flag[j].In = 0;
其他类似问题
3人觉得有用
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言习题求助_百度知道
c语言习题求助
求前2问详解输答案4,2,68,6,6
c语言面&指针&&章习题&概&数组指针与数组元素应关系
提问者采纳
题让囧同编译器执行结同按答案思路理解printf(&%d,%d,%d\n&,*p,*(p++),*(p+2));执行printf函数参数按栈处理进先,并计算所副作用*(p+2)入栈先计算p=a,*(p+2)=a[2]=6,*(p+2)=6计算*(p++),++p等同与*p++,先计算*p=2,p=p+1p指向a[1],*(p++)=2计算*p,*p=a[1]=4,*p=4面8,6,6计算程
其他类似问题
c语言的相关知识
其他3条回答
输入321始循环先看 3 ,实际运算 字符3-字符2 ASCII结 1运行 case 1 结 2 同值没断 继续 case 2 ,结
输入321后,开始循环先看 3 ,实际运算的是 字符3-字符2 ASCII的结果是 1,运行 case 1 结果是 2同时分值没有中断 ,继续 case 2
,当然结果又是一个 2 。然后中断分支。再看 2
,字符2 和'2' 的差是 0 ,就相当于执行了 case 0 case 1 case 2 分支,因为这几个语句公用一个break ,结果就是 两个 1 .最后看1
字符1-'2'
结果是 -1 运行 default
结果就是 0综合看结果就是 22110 附录
字符 0 的ascii 值是 481 --492--50类推另外,站长团上有产品团购,便宜有保证
输入321后,开始循环先看 3 ,实际运算的是 字符3-字符2 ASCII的结果是 1,运行 case 1 结果是 2同时分值没有中断 ,继续 case 2
,当然结果又是一个 2 。然后中断分支。再看 2
,字符2 和'2' 的差是 0 ,就相当于执行了 case 0 case 1 case 2 分支,因为这几个语句公用一个break ,结果就是 两个 1 .最后看1
字符1-'2'
结果是 -1 运行 default
结果就是 0综合看结果就是 22110 附录
字符 0 的ascii 值是 481 --492--50类推
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&问题点数:0&&回复次数:10&&&
[求助]继续问西语言问题
以下程序的输出结果是
main(){ int k=2,m=4,n=6;
int *pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\n",n);}这个程序里面*(p=&n)=*pk*(*pm);这个语句搞不懂,请帮忙解释一下。。。还有下面这个
func(int a,int b){
c=a+b;}main(){ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);}在这里实参和形参的关系怎么处理阿?输出结果是什么 ?
对以下程序,从第一列开始输入数据:2473&CR&,&CR&代表ENTER,程序的输出结果:a.668977
d.6688766#include "stdio.h"main(){
while((c=getcher())!=`\n`)
{ swith(c-`2`)
putchar(c+4);
putchar(c+4);
putchar(c+3);
putchar(c+2);
printf("\n");}这个程序能给我解释下吗?我有点乱。。。
搜索更多相关主题的帖子:
来 自:武汉工程大学
等 级:论坛游侠
帖 子:735
专家分:140
#include "stdio.h"main(){
while((c=getcher())!=`\n`)
{ swith(c-`2`)
putchar(c+4);
putchar(c+4);
putchar(c+3);
putchar(c+2);
printf("\n");}这个我给你说明一下。c=getcher() 表示从键盘输入一个字符,然后判断是否为换行字符。如果不是的呢,就执行swicth后面的语句。而且你这个程序还有蛮多漏洞,蛮多错误。没有写完全的。
~~我的明天我知道~~
等 级:新手上路
这个程序我是从书上找来的,因为看不懂,所以才问。。。觉得好像有挺多不通的地方。。。给我解释解释阿,前面两个呢?谢谢哦
等 级:贵宾
威 望:29
帖 子:5654
main(){ int k=2,m=4,n=6;
int *pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm); //这么多*还不把你搞晕那还得了,我一个一个给你解释,*(p=&n)=*pk*(*pk)这个就相当于p=&n;
// n=*pk*(*pm);
*pk*(*pm)中第一个*pk是pk的值,第二个星号是乘号,第三个和第一个一样.
printf("%d\n",n);}这个程序里面*(p=&n)=*pk*(*pm);这个语句搞不懂,请帮忙解释一下。。。
还有下面这个
func(int a,int b){
c=a+b;}main(){ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
//(x--,y++,x+y)这个式子是一个逗号运算符,从左向右运算,整个表达式的值为最后的X+Y的值.这整个表达式的值就是函数的一个参数,另一个参数就是Z--,应该懂了吧
printf("%d\n",r);}
雁无留踪之意,水无取影之心
等 级:新手上路
帖 子:42
func(int a,int b){
c=a+b;}main(){ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);}x--,y++,x+y的意思是先用了X的数值然后自减1,先用了y 的数值然后自加1,所以x+y=6+7=13z同理,下一步就是调用函数func了把13赋值给a
把z=8(先用z的数值再减1)赋值给b
执行c=a+b=21。最后把c数值返还,输出。
Thinking one minute is better than talking an
来 自:江西农业大学
等 级:新手上路
帖 子:1511
*(p=&n)=*pk*(*pm);由于括号运算符优先级最高,执行(p=&n)和(*pm)--&4; 得到结果: *p=*pk*4;由于 指针的运算符的优先级高于 乘号运算符,执行 *p--&n,*pk--&k,得到结果是:n=k*4;
wap酷禾网(),提供免费的、优质的、快捷的wap资源下载服务。
来 自:江西农业大学
等 级:新手上路
帖 子:1511
int x=6,y=7,z=8,r;func((x--,y++,x+y),z--);由于函数的调用顺序是从右到左,首先执行z--,---&func((x--,y++,x+y),8)再执行(x--,y++,x+y);由于逗号运算符是从左到右的结合顺序,(6,y++,x+y);这时x=5,(6,7,x+y);这时y=8,(6,7,5+8);结果:13所以:func(13,8);
wap酷禾网(),提供免费的、优质的、快捷的wap资源下载服务。
来 自:江西农业大学
等 级:新手上路
帖 子:1511
#include "stdio.h"main(){
while((c=getcher())!=`\n`)
{ swith(c-`2` )
putchar(c+4);
putchar(c+4);
putchar(c+3);
putchar(c+2);
printf("\n");}改正后:#include "stdio.h"main(){ while((c=getchar())!='\n') { switch(c-'2')
putchar(c+4);
putchar(c+4);
putchar(c+3);
putchar(c+2);
printf("\n");}
wap酷禾网(),提供免费的、优质的、快捷的wap资源下载服务。
来 自:江西农业大学
等 级:新手上路
帖 子:1511
2473&CR&,&CR&代表ENTER#include "stdio.h"main(){while((c=getchar())!='\n'){ switch(c-'2')
putchar(c+4);
putchar(c+4);
putchar(c+3);
putchar(c+2);
printf("\n");}当按回车时,getchar()首先接受到 '2',再switch(c-'2') ---&switch(0)
所以这次能执行:case 1: putchar(c+4);--&putchar('2'+4);输出 '6',
------------'6'
case 2: putchar(c+4);--&'6',---&退出switch(),------------'6'接受下一个字符,'4'
执行:switch(c-'2')--&switch(2),
执行:case 2:putchar(c+4)---&输出'8',---&退出switch(),
------------'8'接受下一个字符,'7'
执行:switch(c-'2')--&switch(5), 退出switch(),接受下一个字符,'3'
执行:switch(c-'2')--&switch(1),
执行:case 1: putchar(c+4););--&putchar('3'+4);输出 '7',
------------'7'
执行:case 2: putchar(c+4););--&putchar('3'+4);输出 '7',--&退出switch(),-'7'接受下一个字符,'\n'
退出while()循环.结果:66877
wap酷禾网(),提供免费的、优质的、快捷的wap资源下载服务。
来 自:江西农业大学
等 级:新手上路
帖 子:1511
所以LZ 给出的选项没有正确的.
wap酷禾网(),提供免费的、优质的、快捷的wap资源下载服务。
版权所有,并保留所有权利。
Powered by , Processed in 0.036286 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reservedc语言求助_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:266,719贴子:
c语言求助收藏
实训题:机房上机系统大家帮忙看一下,谢谢了#include &stdio.h&#include &string.h&#include &conio.h&#include &stdlib.h&/*使用system("cls")函数时加此行*/#include &windows.h&#pragma comment(lib, "winmm.lib")#define N 10struct student{char num[10];char name[10];};void myprint();void mycreat();void mystart();void myleave();void myaddnew(); void mylogout(); void del_num();&&&&&& /*被mylogout调用*/void del_name();&&&&& /*被mylogout调用*/void myaddmoney();&&void mycreatnewfaction();void myout();main( )&&&&&&&&&&{&&&&&& char choose='\0',yes_no='\0';&&&& int a[N+1];&&&&&&& do&&&&&&& {&&&&&&&&&& myprint( );&&&&&&&&&&&&& /*显示主菜单*/&&&&&&&&&&&& printf("&&& 请输入选项编号&&&&&&&&&&&&&& ");&&&&&&&&&& choose=getche( );&&&&&&&&&& switch(choose)&&&&&&&&&&& {&&&&&& case '1':mycreat(a);&&&&&&&&&&&&&&&&&& /*建立上机档案*/&&&&&&&&&&&&&&&& case '2':mystart(a);&&&&&&&&&&&&&&&&&& /*开始上机*/&&&&&&&&&&&&&&&& case '3':myleave(a);&&&&&&&&&&&&&&&&&& /*离开机房 */&&&&&&&&&&&& case '4':myaddnew(a);&&&&&&&&&&&&&&&&&& /*添加新档案 */&&&&&&&&&&&&&&&&& case '5':mylogout(a);&&&&&&&&&&&&&&&&&& /*注销旧档案*/&&&&&&&&&&&&&&&&& case '6':myaddmoney(a);&&&&&&&&&&&&&&&&&& /*续钱 */&&&&&&
&&&&&&&&&&&& case '7':mycreatnewfaction(a);&&&&&&&&&&&&&&&&&& /*创新功能 */&&&&&&&&&&&&&&&&&&& case '0':myout(a);&&&&&&&&&&&&&&&& /*退出系统&& */&&&&&&&&&&&& default :printf("\n&&&&&&&&&&&&&&&&&&&&&&& %c为非法选项!\n",choose);&&&&&&&& }&&&&&&&&&& if(choose=='0')&&&&&&&&&&&&& printf("\n&&&&&&&&&&&&&&&&&&&&&&&& 要继续选择吗(Y/N)?\n");&&&&&&&&&& do&&&&&&&&&& {&&&&& yes_no=getch( );&&&&&&&&&& } while(yes_no!='Y' && yes_no!='y'&& yes_no!='N' && yes_no!='n');&&&&&&& } while(yes_no=='Y' || yes_no=='y');}void myprint()&&&&&&&&&&&&&&&&& /*显示主菜单*/ {&&&&&& system("cls");&&&&&&&&&&&&& /*调用清屏函数*/ &&&&&&& printf("&&&&&&&&&&&&&&& |----------------------------------|\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&& 请输入选项编号(0-7):&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |----------------------------------|\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 1--建立上机档案&&&&&&&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 2--开始上机&&&&&&&&&&&&&&& |\n");
&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 3--离开机房&&&&&&&&&&&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 4--添加新档案&&&&&&&&&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 5--注销旧档案&&&&&&&&&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 6--续钱&&&&&&&&&&&&&&&&&&& |\n");&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 7--创新功能&&&&&&&&&&&&&&& |\n");&&&& printf("&&&&&&&&&&&&&&& |&&&&&&&& 0--退出系统&&&&&&&&&&&&&&& |\n");&&&&&&& printf("&&&&&&&&&&&&&&& |----------------------------------|\n");}void mycreat()&&&&&&&&&&&&&&&&&&&& /*定义建立上机档案函数*/{&&&& int i=1;&&&& struct student temp={0};&&&& FILE*fp=NULL;&&&& fp=fopen("d:\\duli16_3.txt","w");&&&& if(fp==NULL)&&&& {&&&&&&&& printf("\n&&&&&& 打开文件失败!\n");}&&&& system("cls");&&&& printf("\n&&&& 请输入第一个同学信息:\n");&&&& printf("&&&&&& 学号(用#结束输入):");&&&& do&&&& {&&&&&&&& gets(temp.num);&&&&&&&& }&&&&&&&& while(strcmp(temp.num,"")==0);&&&& printf("&&&&&& 姓名(用#结束输入):");
&&&& do&&&& { &&&&&&&& gets(temp.name);&&&& }&&&&&&&& while(strcmp(temp.name,"")==0);&&&& printf("&&&&&& 首次预充金额(用0结束输入):");&&&& scanf("%d",&temp.money);&&&& while(temp.num[0]!='#'&&temp.name[0]!='#'&&temp.money!=0)&&&& {&&&&&&&& fprintf(fp,"%23s%15s%15d\n",temp.num,temp.name,temp.money);&&&&&&&& i++;&&&&&&&& printf("\n&&&& 请输入第%d个同学信息:\n",i);&&&&&&&& printf("&&&&&& 学号(用#结束输入):");&&&&&&&& do&&&&&&&& {&&&&&&&&&&&& gets(temp.num);&&&&&&&& }&&&&&&&& while(strcmp(temp.num,"")==0);&&&&&&&& printf("&&&&&& 姓名(用#结束输入):");&&&&&&&& gets(temp.name);&&&&&&&& printf("&&&&&& 首次预充金额(用0结束输入):");&&&&&&&& scanf("%d",&temp.money);&&&& }&&&& fclose(fp);}void mystart()&&&&&&&&&&&& /*定义开始上机函数*/{&& int i=0,n=0;&&& char b[10]="";&&& int sh,&&& FILE*fp=NULL;&&& struct student a[10]={0};&&& fp=fopen("d:\\duli16_3.txt","r");&&& if(fp==NULL)&&& {&&& printf("\n&&& 打开文件失败\n");}&& printf("请输入您的学号\n");&&& gets(b);&&& printf("\n");&&& while(feof(fp)==0)&&& {&&&&&&&&& fscanf(fp,"%d%s%10d\n",&a[n].num,&a[n].name,&a[n].money);&&&&&&&& if(strcmp(b,a[i].num)==0)&&&&&&&&&&&& printf("%23d%15s%10d\n",a[n].num,a[n].name,a[n].money);&&&&&&& n++;&&& } &&& for(i=0;i&N;i++)&&&&& if(strcmp(b,a[i].num)==0) &&&&& {&&&&&&& printf("%23d%15s%5d\n",a[i].num,a[i].name,a[i].money);
&&&&&&& if(a[i].money &=6) printf("余额不够,请续钱!");&&&&&&& else &&&&&&& {&&&&&&&&&&&& printf("您已成功上机!");&&&&&&&&&&&& printf ("请输入上机时间:h-min\n");&&&&&&&&&&&& scanf("%d-%d",&sh,&smin);&&&&&&&&&&&& printf("上机:&d时 &d分",sh,smin);&&&&&&& } &&&&&&&&&&&& }&&&& else&&&&& printf("您不在数据库中!");&&&&& fclose(fp);}void myleave()&&&&&&&&&&&& /*定义离开机房函数*/{ &&&& int sh,smin,eh,emin,x,y;&&&&&&&& &&&& &&&&&&&& FILE*fp=NULL;&&&& fp=fopen("d:\\duli16_3.txt","r");&&&& if (fp==NULL)&&&& {&&&&&&&& printf("\n&&&&&& 打开文件失败!\n");&&&&&&&&&&&& }&&&& printf ("请输入上机时间:h-min\n");&&&& scanf("%d-%d",&sh,&smin);&&&& printf("上机时间:%d时%dmin分",sh,smin);&&&& printf("\n");&&&& printf ("请输入下机时间:h-min\n");&&&& scanf("%d-%d",&eh,&emin);&&&& printf("下机:%d时%dmin分",eh,emin);&&&&&&&& if(emin-smin&0)&&&& {&&&&&&&&&&&&&&&& eh--;&&&&&&&& y=emin+60-&&&& }&&&& else&&&&&&&& y=emin-&&&&&&&& x=eh-&&&& if(y&30)&&&& {&&&& x++;&&&&&&&& y=0;&&&& }&&&& else if(y&0)&&&&&&&& y=30;&&&& else &&&&&&&& y=0;&&&&&& usemoney=x*2+y/60*2;&&&& restmoney=money-&&&&
}void myaddnew()&&&&&&&& /*定义添加新档案函数*/{&&& char c='\0';&&&& int n=0;&&&& struct student temp={0},record[N]={0},*p=NULL;&&&& FILE*fp=NULL;&&&& fp=fopen("d:\\duil16_3.txt","r");&&&& if(fp==NULL)&&&& {printf("\n&&&&&&& 打开文件失败!\n");}&&&& p=&&&& while(feof(fp)==0)&&&& {&&& fscanf(fp,"%23s%15s\n",p-&num,p-&name);&&&&&&&& p++;&&&&&&&& n++;&&&& }&&&& fclose(fp);&&&&&&&&&&& do&&&& {&&&& printf("\n&&&&&& 请输入新同学的学号:");&&&&&&&&& do&&&&&&&&& { gets(temp.num);&&&&&&&&& } while (strcmp(temp.num,"")==0);&&&&&&&&& printf("&&&&&&&& 请输入新同学的姓名:");&&&&&&&&& gets(temp.name);&&&&&&&&&&&&&&&&&& for(p=p&record+n;p++)&&&&&&&&&&&& if(strcmp(temp.num,p-&num)==0)&&&&&&&&&&&& {&&& printf("\n&&&&&& 学号重复,要重新输入吗(Y/N)?");&&&&&&&&&&&&&&&&& do&&&&&&&&&&&&&&&&& {&&& c=getche();&&&&&&&&&&&&&&&&& } &&&&&&&&&&&&&&&&& while (c!='Y'&&c!='y'&&c!='N'&&c!='n');&&&&&&&&&&&&&&&&& putchar('\n');&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&& if(p==record+n)&&&&&&&&&&&& {*p=}&&&& }&&&&&& while(c=='y'||c=='Y');
&&&& fp=fopen("d:\\duil16_3.txt","w");&&&& if(fp==NULL)&&&& { printf("&&&&&&& 打开文件失败!\n");}&&&& for(p=p&record+n+1;p++)&&&&&&&& fprintf(fp,"%23s%15s\n",p-&num,p-&name);&&&& fclose(fp);}void mylogout()&&&&&&&& /*定义注销旧档案函数*/{&&& char c='\0';&&&& printf("\n&&&&&&& 按学号注销(h),还是按姓名注销(m)?");&&&& c=getche();&&&& if(c=='h'||c=='H')&&& del_num();&&&& else&& if(c=='m'||c=='M')&&& del_name();&&&&&&&&&& else printf("\n&&&&& 非法字符! \n");}void del_num()&&&&&&&& /*定义按学号注销旧档案函数*/{&&&& char tempnum[10]="";&&&& int n=0;&&&& struct student record[N]={0},*p=NULL,*k=NULL;&&&& FILE*fp=NULL;&&&& fp=fopen("d:\\duli16_3.txt","r");if(fp==NULL)&&&& {&&&&&&&& printf("\n&&&&&& 打开文件失败!\n");}&&&& p=&&&& while(feof(fp)==0)&&&& {&&&&&&&& fscanf(fp,"%23s%15s\n",p-&num,p-&name);&&&&&&&& p++;&&&&&&&& n++;&&&& }&&&& fclose(fp);&&&& printf("\n&&&&& 请输入要注销记录的学号:");&&&& gets(tempnum);&&&& for(k=k&record+n;k++)&&&&&&&& if(strcmp(tempnum,k-&num)==0)&&&&&&&& if(k&record+n)&&&&&&&&&&&& for(p=k;p&k+n-1;p++)&&&&&&&&&&&& *p=*(p+1);&&&&&&&& else printf("\n&&&&&& 无此人!\n");&&&&&&&&&&&& fp=fopen("d:\\duli16_3.txt","w");&&&&&&&&&&&& if(fp==NULL)&&&&&&&&&&&& {&&&&&&&&&&&&&&&& printf("\n&&&&& 打开文件失败!\n");}&&&&&&&&&&&& for(p=p&record+n-1;p++)
&&&&&&&&&&&&&&&& fprintf(fp,"%23s%15s\n",p-&num,p-&name);&&&&&&&&&&&&&&&& fclose(fp);}void del_name()&&&&&&&&&&&& /*定义按姓名注销旧档案函数*/{&&&& char tempname[10]="";&&&& int n=0;&&&& struct student record[N]={0},*p=NULL,*k=NULL;&&&& FILE*fp=NULL;&&&& fp=fopen("d:\\duli16_3.txt","r");&&&& if(fp=NULL)&&&& {printf("\n&&&&& 打开文件失败!\n");}&&&& p=&&&& while(feof(fp)==0)&&&& {&&&&&&&& fscanf(fp,"%23s%15s\n",p-&num,p-&name);&&&&&&&& p++;&&&&&&&& n++;&&&& }&&&& fclose(fp);&&&& printf("\n&&&&& 请输入要注销记录的姓名:");&&&& gets(tempname);&&&& for(k=k&record+n;k++)&&&&&&&& if(strcmp(tempname,k-&name)==0)&&&&&&&& if(k&record+n)&&&&&&&&&&&& for(p=k;p&k+n-1;p++)&&&&&&&&&&&& *p=*(p+1);&&&&&&&& else printf("\n&&&&&& 无此人!\n");&&&&&&&&&&&& fp=fopen("d:\\duli16_3.txt","w");&&&&&&&&&&&& if(fp==NULL)&&&&&&&&&&&& {&&&&&&&&&&&&&&&& printf("\n&&&&& 打开文件失败!\n");}&&&&&&&&&&&& for(p=p&record+n-1;p++)&&&&&&&&&&&&&&&& fprintf(fp,"%23s%15s\n",p-&num,p-&name);&&&&&&&&&&&&&&&& fclose(fp);}void myaddmoney()&&&&&&&&&&&&& /*定义续钱函数*/ { &&&& int i=0,n=0,m=0;&&&& char b[10];&&&& FILE*fp=NULL;&&&& struct student a[50]={0};&&&& fp=fopen("d:\\duli16_3.txt","r");&&&& if(fp==NULL)&&& {&&& printf("\n&&& 打开文件失败\n");}&&&& while(feof(fp)==0)&&& {&&&&&&&&& fscanf(fp,"%d%s%10d\n",&a[n].num,&a[n].name,&a[n].money);&&&&&&& printf("%23d%15s%10lf\n",a[n].num,a[n].name,a[n].money);&&&&&&& n++;&&& }&&&&& printf("请输入您的学号\n");&&&&& gets(b);&&&&& printf("\n");&&& for(i=0;i&N;i++)&&&& if(strcmp(b,a[i].num)==0) &&&&& {&&&&&&& printf("%23d%15s%5d\n",a[i].num,a[i].name,a[i].money);&&&&&&& printf("请输入续钱金额:");&&&&&&& scanf("%d",&m);&&&&&&& a[i].money=a[i].money+m;&&&&&&& printf("%23d%15s%5d\n",a[i].num,a[i].name,a[i].money);&&&& }}void mycreatnewfaction()&&&&&&&&&&&& /*定义创新功能函数*/ {mciSendString("open \"C:\\爱就爱.mp3\" alias file", NULL, 0, NULL);mciSendString("play file", NULL, 0, NULL);getchar();}void myout()&&&&&&&&&&&& /*定义退出系统函数*/{&&&& printf("\n 感谢使用本软件!已正常退出,按任意键结束。\n");}
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 c语言入门 的文章

 

随机推荐