㈠ c语言用什么软件编写
不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉 Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
对于一个只懂得Windows基本操作、连 DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C 语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
所以我建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。
㈡ 请C语言高手帮我编写几个数据结构的小程序~(一定要用C++编写噢~)谢啦~
#include"stdio.h"
#include"malloc.h"
#define MaxSize 10
typedef char ElemType ;
typedef struct
{
ElemType data[MaxSize]; int front,rear;
}SqQueue;
void InitQueue(SqQueue *&q) //初始化队列
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *&q) //销毁队列
{ free(q); }
int QueueEmpty(SqQueue *q) //判断队列是否为空
{ return(q->front==q->rear); }
int enQueue(SqQueue *&q,ElemType e) //入队列
{
if((q->rear+1)%MaxSize==q->front) return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e; return 1;
}
int deQueue(SqQueue *&q,ElemType &e) //出队列
{
if(q->front==q->rear) return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front]; return 1;
}
void numQueue(SqQueue *q) //输出队列元素个数
{
if(q->rear>=q->front)
printf("这个队列的元素个数为:%d\n",q->rear-q->front);
else
printf("这个队列的元素个数为:%d\n",MaxSize-q->front+q->rear);
}
void DispQueue(SqQueue *q) //输出队列
{
int i=0,f=q->front+1;
while((f+MaxSize)%MaxSize!=q->rear)
{
printf("%c\t",q->data[f]);
f++; i++;
if(i%5==0)printf("\n");
}
printf("%c\n",q->data[f]);
}
void main()
{
SqQueue *q;
ElemType e;
InitQueue(q);
if(QueueEmpty(q))printf("这个队列是空的!\n");
else printf("这个队列不是空的!\n");
enQueue(q,'a'); enQueue(q,'b'); enQueue(q,'c');
if(deQueue(q,e)==1)
printf("出对元素为:%c\n此时",e);
numQueue(q);
enQueue(q,'d'); enQueue(q,'e'); enQueue(q,'f');
printf("def进队列后,");
numQueue(q);
printf("它的元素有:\n");
DispQueue(q);
ClearQueue(q);
}
这是我以前的作业,你自己组织下,应该可以解决你的问题