想不想在C语言的运行窗口上添加一张图片?
2024年10月18日
程序使用标识符做为变量名,变量的属性包括名字、类型、大小和值。同样的,自定义函数的名字也需要使用标识符做为名字。实际上,程序中的每个标识符还有其他的属性,包括存储类别、作用域和连接。
变量名字:由编译器建立标识符与分配的存储空间首个“存储位”地址的对应关系;
类型、大小:变量名字只是对应存储单元的首个“存储位”的地址,一般来说,除了bool型和字符型,其它如整数型、浮点型都需要多个“存储位”来保存,而多少个“存储位”则由类型和大小来决定;
2024年10月18日
程序员没有诗人那么的满腹经纶,能吟诗作曲,写出“明月几时有?把酒问青天。”的千古诗文;
没有达官贵人那般隆重庆祝,花费重金装饰庭院,摆满灯笼饰品,端上精美小盒的月饼、水果,美美享受中秋佳节。
2024年10月18日
前面一篇文章我们讲了C语言文件的打开与关闭,以及二进制文件与文本文件的区别,还有基本文件打开关闭的字符格式。这些都是要记住的,
就是基本的预备知识,如果有不明白的可以查看我的上一篇文章。
文件的操作流程我们随时要做到心中有数。今天讲文件的读写。
文件的读写分为三种方式,今天说第一种C语言以字符形式读写文件
2024年10月18日
随机产生3行40列小写字母,然后请用户输入,如果和随机产生的字母一致则输出O错误输出X
知识点:数组,取余,判断,循环,几个库函数,注释详细,适合像我这样的初学者。
#include <stdio.h> //经典标准输入输出头文件,不然printf()用不了。
2024年10月18日
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAXSIZE 100 /* 环状队列空间的存储量 */
typedef int DataType; /* 环状队列元素类型 */
typedef struct {
DataType *data; /* 环状队列元素存储空间基址 */
int front, rear; /* 环状队列头、尾 */
} SeqQueue; /* 环状队列类型 */
void wait()
{
printf("\n请按任意键...\n");
getch();
}
int go_on()
{
int flag = 1;
char choice;
while(1) {
printf("\n继续吗?[Y/N]");
choice = getche();
if (choice == 'Y' || choice == 'y')
break;
else if (choice == 'N' || choice == 'n') {
flag = 0;
break;
}
}
return (flag);
}
/* 初始化,构造一个空环状队列 */
void Init_SeqQueue(SeqQueue *Q, int n)
{
Q->data = (DataType *)malloc(n*sizeof(DataType));
if(Q->data == NULL) {
printf("\n内存分配失败.\n");
exit(-1);
}
Q->front = Q->rear = 0;
}
/* 判断环状队列是否为空 */
int Empty_SeqQueue(SeqQueue *Q)
{
if(Q->front == Q->rear)
return (1);
else
return (0);
}
/* 判断环状队列是否为满 */
int Full_SeqQueue(SeqQueue *Q)
{
if((Q->rear+1) % MAXSIZE == Q->front)
return (1);
else
return (0);
}
/* 求环状队列队长 */
int Length_SeqQueue(SeqQueue *Q)
{
int k;
k = (Q->rear - Q->front + MAXSIZE) % MAXSIZE;
return (k);
}
void Length(SeqQueue *Q)
{
int k;
k = Length_SeqQueue(Q);
printf("\n队长:%d\n", k);
}
/* 入队,插入元素e为新的队头元素 */
int EnQueue_SeqQueue(SeqQueue *Q, DataType e)
{
if(Full_SeqQueue(Q) == 1) { /* 队满,不能入队 */
printf("队满,不能入队.\n");
return (0);
}
else {
Q->data[Q->rear] = e; /* 元素e入队 */
Q->rear = (Q->rear + 1) % MAXSIZE;
return (1);
}
}
void EnQueue(SeqQueue *Q)
{
DataType x;
int flag = 1, enqueue_flag;
while(flag) {
printf("\n请输入要入队元素:");
scanf("%d", &x);
enqueue_flag = EnQueue_SeqQueue(Q, x);
if (enqueue_flag == 1)
printf("\n入队成功.\n");
else
printf("\n入队失败.\n");
flag = go_on();
}
}
/* 出队,删除队头元素,并由*e返回其值 */
int DeQueue_SeqQueue(SeqQueue *Q, DataType *e)
{
if(Empty_SeqQueue(Q)) { /* 队空,不能出队 */
printf("\n队空,不能出队.\n");
return (0);
}
else {
*e = Q->data[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return (1);
}
}
void DeQueue(SeqQueue *Q)
{
DataType x;
int flag = 1, dequeue_flag;
while (flag) {
dequeue_flag = DeQueue_SeqQueue(Q, &x);
if(dequeue_flag == 1)
printf("\n出队成功,出队元素为:%d\n", x);
else
printf("\n出队失败.\n");
flag = go_on();
}
}
/* 取队头元素,由*e返回其值 */
int GetFront_SeqQueue(SeqQueue *Q, DataType *e)
{
if(Empty_SeqQueue(Q)) { /* 队空,不能取队头元素 */
printf("\n队空,不能取队头元素.\n");
return (0);
}
else {
*e = Q->data[Q->front];
return (1);
}
}
/* 输出队头元素 */
void Display_Front(SeqQueue *Q)
{
DataType e;
if(Empty_SeqQueue(Q) == 1)
printf("\n队空,没有元素.\n");
else {
GetFront_SeqQueue(Q, &e);
printf("\n队头元素:\n");
printf("%4d\n", e);
}
}
/* 输出队全部元素 */
void Display_SeqQueue(SeqQueue *Q)
{
int k, len;
if(Empty_SeqQueue(Q)==1)
printf("\n队空,没有元素.\n");
else {
printf("\n队全部元素\n");
printf("\n队头<--------------------->队尾\n");
len = Length_SeqQueue(Q);
for(k=0; k<len; k++)
printf("%4d", Q->data[(Q->front+k)%MAXSIZE]);
}
}
int main(void)
{
SeqQueue Q;
char choice;
int flag = 1;
Init_SeqQueue(&Q, MAXSIZE);
do {
printf("\n");
printf("-----环状顺序队列(动态数组实现)-----\n");
printf(" 1........入队元素\n");
printf(" 2........出队元素\n");
printf(" 3........输出队长\n");
printf(" 4........输出队头元素\n");
printf(" 5........输出全部元素\n");
printf(" 0........退出\n");
printf("请选择[1/2/3/4/5/0]: ");
choice = getche();
switch(choice) {
case '1':
EnQueue(&Q);
break;
case '2':
DeQueue(&Q);
break;
case '3':
Length(&Q);
break;
case '4':
Display_Front(&Q);
break;
case '5':
Display_SeqQueue(&Q);
break;
case '0':
flag = 0;
break;
}
wait();
} while(flag == 1);
return (0);
}
2024年10月18日
EasyX图形编程:将图片载入窗体
#include<graphics.h>
#include<conio.h>
int main()
{initgraph(200,350);
SetWindowText(GetHWnd(),"载入图片");
2024年10月18日
函数是C程序的基本组成单位,一个C程序由一个main()函数和若干个子函数组成。函数分为主函数、标准库函数、用户自定义函数。
主函数也就是main()函数,一个C程序有且仅有一个main()函数,main()函数是一个程序的入口和正常出口。
C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。事实上,在编写C语言程序时,应当尽可能多地使用库函数,这样既可以提高程序的运行效率,又可以提高编程的质量。
2024年10月18日
一,
理解带格式的输入/输出函数
- scanf() 和 printf()
使用字符输入/输出函数
- getchar() 和 putchar()
C 语言中的标准库提供了输入和输出函数
标准库提供: 输入/输出函数来处理输入、输出、字符 和字符串操作
标准输入通常是指键盘
标准输出通常是指显示器(也称控制台)
可以用文件代替标准输入和输出设备