C语言学完后想到的见到的杂七杂八的问题,求解决
1: typedef这个就是 重命名,带类型的但是这样子是什么意思呢?
typedefstructstudent
{
xxxxxxxx;
xxxxxxxx;
}b;
我想不明白,求解释,也可能这个想法就是错误的,、
2:贪吃蛇问题,
graphics.h这个库,我看到的贪吃蛇都是有这个库的 ,我学的时候用的就是 VC+6.0 ,编译之后提示 错误, 没有这个库,求好的解决办法,或 求 谁把这个库换成别的库 只要VC+6.0 的能运行都可以, 就是把源代码改成VC+6.0能运行的,给我一份,谢谢了,,,这里我就想说一下甲鱼老师了, C语言都讲了65课,也不差讲那几课了·,最后起码带我们写个 贪吃蛇把,,至少让我们 菜鸟也有一些成就感,, ()
3: C语言 直接就 调用DOS 了 ,这个 在哪里学, 我想看一下,
就是 别人在写的 贪吃蛇里面上来就是 system("mode con cols=100 lines=30");的,很郁闷,百度了一下就是DOS 调用把好像,
4:图中的C++ 的那个是不是 不属于C语言的范畴了。平常没见过,
5:求一份没有 graphics.h的贪吃蛇代码,能VC+6.0 用的 最好能用注释, 本人不会数据结构和算法,只会链表这个排序冒泡,迭代等等,太复杂了 就不用了 ,
大家能帮忙回答几个就回答几个,最佳答案会给 回答5,和回复其他任意一个问题的,
1:貌似只说了这种结构的名称叫b
2:graphics.h这个头文件vc++6.0本身是没有的就算你下载了也没用他是不兼容的 必须要打补丁
3:直接调用DOS很简单啊加上头文件#include<windows.h> 然后直接写system("DOS命令");即可
4:哪个??你是指cmd.cpp这个是C++的源文件啊all.h看样子不是本身自带的是自己加的类似于易语言的模块
比如常用的printf就是在头文件stdio.h中定义好的
5.基本上没有只有turboC和linux的 VC只能打补丁去用turboC的代码
还有你说冒泡都复杂你(ˇˍˇ) 想弄贪吃蛇 ......说难听点就是痴心妄想说好听点就是不自量力 真的冒泡排序 迭代 不是很难的吧 顺便说下 graphics.h 这个要在VC下用 说能打补丁使用我也是听说反正我是没见到过那个神奇的补丁 牡丹花下死做鬼 发表于 2014-2-10 22:45 static/image/common/back.gif
1:貌似只说了这种结构的名称叫b
2:graphics.h这个头文件vc++6.0本身是没有的就算你下载了也没用他是不兼 ...
我说 的是我上面列举的简单算法都会, 其他的就都不会了:sweat: 真的没有C语言贪吃蛇代码吗。 帮写一个吧,我很想看看,链接也好 , 要VC+6.0能运行就好,:handshake Ъγ:_小ツ雨oο 发表于 2014-2-11 12:32 static/image/common/back.gif
我说 的是我上面列举的简单算法都会, 其他的就都不会了 真的没有C语言贪吃蛇代码吗。 帮写一个 ...
{:7_176:}好吧 但是贪吃蛇VC++6.0下 确实...... 链表的话倒是可以 Ъγ:_小ツ雨oο 发表于 2014-2-11 12:32 static/image/common/back.gif
我说 的是我上面列举的简单算法都会, 其他的就都不会了 真的没有C语言贪吃蛇代码吗。 帮写一个 ...
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define LEN sizeof(struct student)
struct student *create();//创建链表
struct student *del(struct student *head,int num);//删除链表中数字 (链表头指针,要删除的学号)
struct student *insert(struct student *head,struct student *head_2);//网链表中加元素(链表头指针,要加的那个的)
void print(struct student *head);//输出链表
struct student *clear(struct student *head);//清空链表
void change(struct student *head,int num,float score);//更改链表数据
struct student
{
long int num;
float score;
struct student *next;
};
int n;
char ch;
int main()
{
struct student *head,head_2;
int num,i;
float score;
printf("请先建立一个链表!(要结束请在number处输入0)\n");
head = create();
s: setbuf(stdin,NULL);
printf("---------------------------------------------------------\n");
printf("请选择要的操作:\n");
printf("1.打印记录 ");
printf("2.插入记录 ");
printf("3.删除记录 \n");
printf("4.更改记录 ");
printf("5.清除记录 ");
printf("6.退出程序 \n");
printf("---------------------------------------------------------\n");
scanf("%d",&i);
switch(i)//根据用户输入的不同数字来执行不同的代码
{
case 1:
print(head);
goto s;
break;
case 2:
s4: setbuf(stdin,NULL);
printf("what number are you want to insert:");
scanf("%d",&head_2.num);
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s4;
}
}
s5: setbuf(stdin,NULL);
printf("what score are you want to insert:");
scanf("%f",&head_2.score );
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s5;
}
}
head = insert(head,&head_2);
goto s;
break;
case 3:
s6: setbuf(stdin,NULL);
printf("please putinto the number you want to delete:");
scanf("%ld",&num);
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s6;
}
}
head = del(head,num);
goto s;
break;
case 4:
s7: setbuf(stdin,NULL);
printf("Please putinto the number you want to change:");
scanf("%d",&num);
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s7;
}
}
s8: setbuf(stdin,NULL);
printf("Please putinto the score you want to save:");
scanf("%f",&score);
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s8;
}
}
change(head,num,score);
break;
case 5:
head=clear(head);
break;
case 6:
return 0;
break;
default:
printf("对不起,你的输入有误,请重新输入!");
goto s;
break;
}
goto s;
}
struct student *create()
{
struct student *head;
struct student *p1,*p2;
s: setbuf(stdin,NULL);
head = NULL;
p1 = p2 = (struct student *)malloc(LEN);
printf("Please purinto student's munber:");
scanf("%ld",&p1->num );
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s;
}
}
s1: printf("Please putinto student's score:");
setbuf(stdin,NULL);
scanf("%f",&p1->score );
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s1;
}
}
n = 0;
while(p1->num )
{
n++;
if(n==1)
{
head = p1;
}
else
{
p2->next =p1;
}
p2 = p1;
p1 = (struct student *)malloc(LEN);
s2: setbuf(stdin,NULL);
printf("Please purinto student's munber:");
scanf("%ld",&p1->num );
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s2;
}
}
if(p1->num ==0)
{
goto e;
}
s3: setbuf(stdin,NULL);
printf("Please putinto student's score:");
scanf("%f",&p1->score );
while((ch=getchar())!='\n')
{
if((ch>=48&&ch<=57)||ch==46)
{
;
}
else
{
printf("你的输入有误!\n");
goto s3;
}
}
}
e: p2->next =NULL;
return head;
}
void print(struct student *head)
{
struct student *p;
p = head;
printf("共有%d条记录:\n",n);
if(head)
{
do
{
printf("%ld号学生的成绩是:%f\n",p->num,p->score);
p = p->next ;
}while(p);
}
}
struct student *del(struct student *head,int num)
{
struct student *p1,*p2;
if(NULL == head)
{
printf("The List is NULL!\n");
goto END;
}
p1 = head;
while(p1->num !=num&&p1->next !=NULL)
{
p2 = p1;
p1 = p1 ->next ;
}
if(num == p1->num )
{
if(p1 == head)
{
head = p1 ->next ;
printf("Delete NO.%d succeed!\n",num);
n--;
}
else
{
p2->next =p1->next ;
printf("Delete NO.%d succeed!\n",num);
n--;
}
}
else
{
printf("NO.%d not been found!\n",num);
}
END:
return head;
}
struct student *insert(struct student *head,struct student *head_2)
{
struct student *p0,*p1,*p2;
p0 = head_2;
p1 = head;
if(p1==NULL)
{
head = p0;
p0->next =NULL;
}
else
{
while(p0->num >p1->num && p1->next !=NULL)
{
p2 = p1;
p1 = p1 ->next ;
}
if(p0->num <= p1->num)
{
if(p1 == head)
{
head = p0;
}
else
{
p2->next =p0;
}
p0->next =p1;
}
else
{
p1->next =p0;
p0->next =NULL;
}
}
n++;
e: return head;
}
struct student *clear(struct student *head)
{
head = NULL;
n=0;
printf("以清除全部记录!\n");
return head;
}
void change(struct student *head,int num,float score)
{
struct student *p1,*p2;
if(head == NULL)
{
printf("This is a NULL!\n");
goto end_2;
}
p1 = head;
while(p1->num !=num&&p1->next !=NULL)
{
p2 = p1;
p1=p1->next ;
}
if(p1->num ==num)
{
p1->score = score;
}
else
{
printf("NO.%d not been found!",num);
}
end_2:
printf("");
} 这个链表是我自己写的可能会有错误 表见怪啊 要贪吃蛇代码的话点我
牡丹花下死做鬼 发表于 2014-2-11 13:06 static/image/common/back.gif
要贪吃蛇代码的话点我
版主,这个怎么解决,百度了 但是都没具体的答案,
Ъγ:_小ツ雨oο 发表于 2014-2-11 17:58 static/image/common/back.gif
版主,这个怎么解决,百度了 但是都没具体的答案,
你这个是linux下的代码吧 在windows下不能的
都说了 要么用turbo C 要么去linux 自己选吧
页:
[1]