首页 > 软件 > 程序题使用C语言作答在线等

程序题使用C语言作答在线等

软件 2025-01-13

c语言程序解答(在线等)?

根据题意:

1、项目序号应为唯一值,用自增变量填充。

2、时间使用struct tm结构体(考虑如需时间运算,可使用相关函数)。

3、自定义结构类型SIINFO,分别实现插入链表和打印链表两个功能。

4、由于这个演示程序执行完就结束程序了。所以链表我没有写free释放内存,如你后期扩充代码,自己写释放(除程序结束,malloc申请内存不会自动释放)。

下面是演示代码:

#include

#include

#include

#define MS 4//最大类型个数

#define MN 20//名称最大字符长度

char stypes[MS][10]={"速度型","力量型","耐力型","对抗型"};//项目类别,自行扩展,对应修改MS常量

typedef struct SportsItemInfo//定义一个体育项目结构类型

{

int id;//项目序号,从数据结构考虑,该项不能重复,应设为自增从0开始(实际开发,这个值由数据库分配)。

char name[MN+1];//项目名称

int stype;//项目类(对应stypes行下标)

int n;//参赛人数

struct tm sDate;//竞赛时间

struct SportsItemInfo *next;

}SIINFO;

SIINFO *insert2List(SIINFO *p_sHead);//插入新数据,首次插入参数传NULL。参数:链表头节点地址(不是首节点)。成功返回头节点,失败返回NULL。

void selectFList(SIINFO *p_sHead);//查询链表

int main()

{

char c;

SIINFO *p_sHead=NULL,*stemp=NULL;

printf("新增体育项目:\n");

while(1)

{

stemp=insert2List(p_sHead);

if(!stemp)

{

printf("ERROR!\n");

return 1;

}

p_sHead=stemp;

printf("是否继续输入(Y/N):");

c=0;

while(c!='Y' && c!='N')scanf("%c",&c);

if(c=='N') break;

}

selectFList(p_sHead);

return 0;

}

void selectFList(SIINFO *pht)

{

int i=0;

if(pht)

{

printf("\n输出链表信息:\n");

while(pht->next)

{

printf("-----------项目%d---------\n",++i);

printf("项目序号:%d\n",pht->next->id);

printf("项目名称:%s\n",pht->next->name);

printf("项目类别:%s\n",stypes[pht->next->stype]);

printf("参赛人数:%d\n",pht->next->n);

printf("参赛时间:%04d-%02d-%02d %02d:%02d:%02d\n",pht->next->sDate.tm_year+1900,pht->next->sDate.tm_mon+1,pht->next->sDate.tm_mday,pht->next->sDate.tm_hour,pht->next->sDate.tm_min,pht->next->sDate.tm_sec);

printf("--------------------------\n");

pht=pht->next;

}

}

}

SIINFO *insert2List(SIINFO *p_sHead)

{

static int x=0;

static SIINFO *p_sTail=NULL;

int i;

SIINFO *p_new=NULL;

if(!p_sHead){

p_sHead=(SIINFO*)malloc(sizeof(SIINFO));

if(!p_sHead)

return NULL;

p_sHead->next=NULL;

p_sTail=NULL;

}

p_new=(SIINFO*)malloc(sizeof(SIINFO));

if(!p_new)

return NULL;

p_new->next=NULL;

p_new->id=x++;

printf("--------------------------\n");

printf("项目名称:"),scanf("%s",p_new->name);

for(i=0,printf("项目类(");i

printf("%d、%s):",i,stypes[i]);

p_new->stype=-1;

while(p_new->stype<0 || p_new->stype>MS-1)scanf("%d",&p_new->stype);

printf("参赛人数:"),scanf("%d",&p_new->n);

printf("参赛时间(输入格式:年-月-日 时:分:秒):");

scanf("%d-%d-%d %d:%d:%d",&p_new->sDate.tm_year,&p_new->sDate.tm_mon,&p_new->sDate.tm_mday,&p_new->sDate.tm_hour,&p_new->sDate.tm_min,&p_new->sDate.tm_sec);

p_new->sDate.tm_mon--;//tm结构的月份是从0开始对应1月

p_new->sDate.tm_year=p_new->sDate.tm_year-1900;//tm结构的年份是实际年份-1900

if(!p_sHead->next)

p_sHead->next=p_new;

else

p_sTail->next=p_new;

p_sTail=p_new;

printf("--------------------------\n");

return p_sHead;

}

C语言编程题 急 在线等 回答全加分!

//追加分吧,做了很久哦,调试成功的 #include #include #include #define MAX_PATH 512 typedef struct _Char //字母结构体 { char name; //字母名称 int count; //计数 } Char; void Menu(char *CopyRight) //欢迎菜单 { printf("________________________________________________________________________________\n"); pr

c语言编程题目在线等

因为保证是4位数输入 所以输入的时候做点手脚

#include
intmain()
{
inta,b,c,d;//分别表示千位,百位,十位,个位
scanf("%1d%1d%1d%1d",&a,&b,&c,&d);//每个变量读入1位整数
printf("四位整数%d%d%d%d的个位是%d,十位是%d,百位是%d,千位是%d,它们的和=%d。\n",a,b,c,d,d,c,b,a,a+b+c+d);
return0;
}

c语言程序解答(在线等)

首先更正str[20];应为str2[20]. 要明确一点,str1和str2这两个变量本身就是个字符型指针,它跟char *q是一样的,str2就是指向这个字符序列第一个元素的指针。 for(p=str1;*p!='\0';p++); 这个循环的作用是使p指向str1的最后一个元素。 for(q=str2;--p>=str1;q++) *q=*p; 这是个循环,起始条件是字符型指针q=str2,也就是说q指向的就是str2这个序列的第一个元素。 --p>=str1;在进行--p之前,p已经指向str1的最后一个元素(如果str1有5个元素,那么这时p=str1+5),--p即是让指针向前移动

C语言编程题求解,在线等!!!

C语言程序:

#include


void main()

{

char ch = 'G';

int value = 'G';


printf("input a character : ");

ch = getchar();

value = ch;

getchar();



if(ch >= 'a' && ch <= 'z')

ch -= 32;


printf("%c %d\n", ch, value);


printf("input a character : ");

scanf("%c", &ch);

value = ch;


if(ch >= 'a' && ch <= 'z')

ch -= 32;


printf("%c %d\n", ch, value);

}



运行测试:


标签:CC++ 信息技术 C(编程语言) 编程 计算机

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18