11.23 作业
来源:互联网 发布:人工智能伏羲觉醒迅雷 编辑:程序博客网 时间:2024/05/19 19:15
1.题目:创建单链表并赋值,要求遍历能输出1~9
#include<stdio.h>#include<stdlib.h>#define malloc_error -1typedef int ElemType;typedef struct node{ElemType data;struct node *next;}Node;typedef Node *PNode;int Create_Head(PNode *head,ElemType data){ PNode p = (PNode)malloc(sizeof(Node)/sizeof(char)); if(p==NULL) return malloc_error; p->data=data; p->next=*head; *head=p; }void DisPlay(PNode head){ if (head == NULL) { return; } PNode temp = head; while (temp) { printf ("%4d", temp->data); temp = temp->next; } printf ("\n");}int main(){ PNode head = NULL; int i ; for (i = 9; i > 0; i--) { Create_Head(&head, i); } DisPlay(head); return 0;}
2.题目:读取一个5*5数组,然后显示每行的和与每列的和
#include <stdio.h> int main() { int a[5][5] = {0}; int i; int j; for(i = 0; i < 5; i++) { for(j = 0; j < 5; j++) { scanf("%d", &a[i][j]); } } printf("\n"); for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { printf ("%3d",a[i][j]); } printf ("\n"); } printf ("\n"); for (i = 0; i < 5; i++) { int hangs = 0; for (j = 0; j < 5; j++) { hangs = hangs + a[i][j]; } printf ("第%d行的和为:%d\n",i+1,hangs); } printf ("\n"); for (i = 0; i < 5; i++) { int lies = 0; for (j = 0; j < 5; j++) { lies = lies + a[j][i]; } printf ("第%d列的和为:%d\n",i+1,lies); } return 0; }
3.题目:编程判断字符串是否为回文
判断一个字符串是否是回文,例如单词‘level’
#include <stdio.h> #include <string.h> #define YES 1 #define NO 0 int judge(char* str) { if(str == NULL) { return NO; } int len = strlen(str); char* p = str; char* q = str; while(*p++); p -= 2; for(; str != '\0', p != q; str++, p--) { if(*str != *p) { return NO; } } return YES; } int main() { char str1[] = "12321"; char str2[] = "12345"; if(judge(str1)) { printf("12321是回文\n"); } else { printf("12321不是回文\n"); } if(judge(str2)) { printf("12345是回文\n"); } else { printf("12345不是回文\n"); } return 0; }
4.题目:生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的? (第七届蓝桥杯B组真题(第二题))
/* i + (i + 1) + (i + 2) +...+(i + n) =236 (n + 1)*i +n*(n+1)/2 =236 2*(n+1)*i + n*(n+1) =472 (2*i+n)*(n+1) = 472 */ #include<stdio.h> int main() { int i; int n; int sum = 236; for (i = 0; i < 100; i++) { for (n = 0; n < 100; n++) { if ((n + 1) * (2 * i + n) == 472) { printf("%d\n",i); } } } return 0; }
5.题目:编程实现查找两个字符串的最大公共子串
示例:”aocdfe”和”pmcdfa”最大公共子串为”cfd”
#include <stdio.h> #include <string.h> #include <stdlib.h> #define GREATER 1 #define EQUAL 0 #define LESS -1 char* my_strstr(char* str1, char* str2) { const char* bp; const char* sp; if(str1 == NULL || str2 == NULL) { return str1; } while(*str1) { bp = str1; //用于str1的遍历 sp = str2; //用于str2的遍历 while(*bp++ == *sp++) //遍历str2字符串 { if(*sp == '\0') //找到了str2字符串结束符退出 { return str1; } } str1++; } return NULL; } char* mycomstring(char* str1, char* str2) { if(str1 == NULL || str2 == NULL) { return str1; } char* shortstr; char* longstr; char* substr; int i, j; if(strlen(str1) <= strlen(str2)) { shortstr = str1; longstr = str2; } else { shortstr = str2; longstr = str1; } if(my_strstr(longstr, shortstr) != NULL) { return shortstr; } substr = (char*)malloc(sizeof(char)*(strlen(shortstr) + 1)); for(i = strlen(shortstr)-1; i>0; i--) { for(j = 0; j <= strlen(shortstr)-i; j++) { memcpy(substr, &shortstr[j], i); substr[i] = '\0'; if(my_strstr(longstr, substr) != NULL) { return substr; } } } return NULL; } int main() { char str1[] = "aocdfe"; char str2[] = "pmcdfa"; printf("%s\n", mycomstring(str1, str2)); return 0; }
补充:
编程实现字符串中子串的查找
请写一个函数,实现从一个字符串中,查找另一个字符串的位置,如strstr(”12345”, “34”)返回值为2,即在2号位置找到字符串“34”
#include <stdio.h> const char* my_strstr(const char* str1, const char* str2) { const char* bp; const char* sp; if(str1 == NULL || str2 == NULL) { return str1; } while(*str1) { bp = str1; //用于str1的遍历 sp = str2; //用于str2的遍历 while(*bp++ == *sp++) //遍历str2字符串 { if(*sp == '\0') //找到了str2字符串结束符退出 { return str1; } } str1++; } } int main() { char p[] = "12345"; char q[] = "34"; char* r = my_strstr(p, q); printf("r:%s\n", r); return 0; }
阅读全文
0 0
- 11.23 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业~~~~~~~~~~~~~
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- The Accomodation of Students HDU
- 用nltk提取ngram特征
- Studio3.0调试出现UnsatisfiedLinkError
- rsync+inotify实现NFS实时同步数据以及压力测试
- 视频开发(一) 基础知识总结
- 11.23 作业
- 阿里云oss挂载到本地及oss文件的上线记录
- day19
- 阿里云幸运券分享,新用户买ECS云服务器有优惠还能抽奖
- POST GET 工具类
- BeanUtils工具的使用
- 享元模式(Flyweight Pattern)
- NDK reference-asset_manager.h
- python基础-Process创建进程、join方法、实现ftp多进程