![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C练习
文章平均质量分 64
卓洛王子
卓洛王子又开始找工作了,求C++引擎或相关。
展开
-
choose the longest word in the line .把字符串中最长的单词输出
#include#include#include#includeint main(){ char*getstr(void); // intlongest(char *str,char *word); intlongest(char string[]); intalphabetic(char c); char *str =NULL;char原创 2014-08-29 22:25:30 · 959 阅读 · 0 评论 -
将博客搬至CSDN
话说我真的不知道怎么在新浪上面贴代码,每次都有缺漏。现在开始去CSDN上尝试一下,后果自负。原创 2014-08-29 22:28:40 · 482 阅读 · 0 评论 -
转载 一个时间复杂度为O(N)的算法
36.有1,2,….一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用交换,而且一次只能交换两个数。快速排序被认为是速度最快算法,时间复杂度是:nlog(n),下面这个是O(n),当然是有一定的条件的,不具普遍性,但是它的思路还是挺有技巧的。1~N的数组,那么排序后必然a[0]=1,a[1]=2,a[2]=3........也就是元素值必定是存放在比值原创 2014-08-29 22:27:55 · 721 阅读 · 0 评论 -
学习使用头文件卫士
#ifndef _H_LETTER_H_A //头文件卫士#define _H_LETTER_H_A#includeusing namespace std;#include#include#include#define ASK(p) do{\p = (STUD *)malloc(sizeof(STUD));\if(p==NULL) {cout}while(0);#def原创 2014-08-29 22:27:23 · 1937 阅读 · 0 评论 -
Test11_6 指针用p->X和(*p).X等价
#include #include #include int main(){ struct student { long num; char name[20]; char sex; float score; }; struct studentstu_1; struct stude原创 2014-08-29 22:26:31 · 799 阅读 · 0 评论 -
P279_1020用指向指针的指针对字符…
字符串数组进行在位排序,先建立一个指针数组指向字符串数组,对第一指针数组进行排序即可。然后在第一指针数组上再建第二指针数组即可完成简单排序,然后根据第一数组的顺序寻址即可输出排序好的字符串。#include #include #include #define LINEMAX 20int main(){ void sort(char * *p); int i;原创 2014-08-29 22:26:29 · 470 阅读 · 0 评论 -
统计一个数中的二进制数值中有多少…
3.求函数返回值,输入x=9999;int func ( x ){int countx = 0;while ( x ){countx ++;x = x&(x-1);}return countx;}结果呢?知道了这是统计9999的二进制数值中有多少个1的函数,且有9999=9×1024+512+256+159×1024中含有1的个数为2;512中含有1的个数为1;原创 2014-08-29 22:28:21 · 1015 阅读 · 0 评论 -
P305_1111链表的综合操作,建表、…
#include #include #include #define LEN sizeof(struct student)struct student{ long num; float score; struct student*next;};int n;struct student* creat(void){ struct student原创 2014-08-29 22:26:35 · 393 阅读 · 0 评论 -
建立三个学生的单链表试试感觉
#include #include #include #define LEN sizeof(struct student)struct student{ long num; float score; struct student*next;};int n;struct student* creat(void){ struct student原创 2014-08-29 22:26:33 · 708 阅读 · 0 评论 -
电文,按照a--z,b--y,A--Z,B--Y,…
#includevoid main(){char ch[100]; gets(ch);printf("\n");for(int i = 0;i{if(ch[i]>=65&&ch[i]ch[i] = 90-(ch[i]-65);if(ch[i]>=97&&ch[i]ch[i] = 122-(ch[i]-97);}printf("%s\n",ch);}原创 2014-08-29 22:25:15 · 748 阅读 · 0 评论 -
有一篇文章,共有3行文字,每行有8…
有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其他英文大写字母、小写字母、数字、空格以及其他字符的个数。#includevoid main(){char ch[3][80];int SLetter = 0,CLetter = 0,Num = 0,Space = 0,Other = 0;for(int i = 0;i{gets(ch[i]);for(int j = 0原创 2014-08-29 22:25:13 · 12018 阅读 · 2 评论 -
P314_1113 求五取三不重复的颜色排列
#include#includeint main(){ enum color{red,yellow,blue,white,black}; enum colori,j,k,pri; int n = 0,loop; for(i = red;i <=black;i++) { for(j = red;j {原创 2014-08-29 22:26:37 · 577 阅读 · 0 评论 -
P279_1018编写程序,打入月份,输出该月英文月名,用指针数组处理
#includevoid main(){char *month_name[13] = {"illegalname","January","Fe3bruary","March","April","May","June","July","Augest","September","Octber","Novemer","December"};int n;printf("input month原创 2014-08-29 22:26:24 · 974 阅读 · 0 评论 -
p279_1016在字符串有数字与非字符,找出连续的数字作为整数存放并统计个数。方法简洁,不同于答案书
#include #include int main(){ char temp; int label = 0; int i = 0,j = 0,num =0,a[10]; printf("Please input astring:\n"); temp = getchar(); while(1) { if((temp原创 2014-08-29 22:26:16 · 497 阅读 · 0 评论 -
P279_1015 学习数组与指针的交换使用
题目要求:4个学生5门课程:1、求第一门课程的平均分 2、找出两门或以上课程不及格的学生并输出学号和全部课程成绩以及平均成绩3、找出平均成绩在90分以上或者全部课程成绩在85分以上的学生。要求三个函数实实现3个要求。 #include#includeint main(){ void avsco(float*pscore,float *paver); //count原创 2014-08-29 22:26:14 · 508 阅读 · 0 评论 -
P279_1012 用了典型的冒泡法对字符串排序。侧重指针应用,交换指针所指向的地址。
#include#includeint main(){void sort(char*str[10]); int i;char str[10][20],*p[10];for(i=0;i{ p[i] = str[i];}printf("intput 10 strings:\n");for(i=0;i{scanf("%s",p[i]);}sort(p原创 2014-08-29 22:26:08 · 453 阅读 · 0 评论 -
P279_1011 用了典型的冒泡法排序字符串
#include#includevoid main(){void sort(char(*p)[6]); int i;char str[10][6],(*p)[6];printf("intput 10 strings:\n");for(i=0;i{scanf("%s",str[i]);}p = str;sort(p);printf("Now, the sequen原创 2014-08-29 22:26:05 · 440 阅读 · 0 评论 -
寻找矩阵中最大元素置中,最小四元素置边角 P279_1010 改进比较次数
#include#includeint main(){ void change(int*); inta[5][5],*p,i,j; printf("Input thematrix:\n"); for(i = 0;i<5;i++) //输入矩阵 for(j = 0;j { sca原创 2014-08-29 22:26:01 · 406 阅读 · 0 评论 -
找出最小存首位和最大数存末位,写三个函数:输入、输出、处理。
#include#includeint main(){ void input(int*number); void output(int*number); void max_min_value(int*number); int number[10]; input(number); max_min_value(number); ou原创 2014-08-29 22:25:42 · 534 阅读 · 0 评论 -
输入十六进制数输出相应的十进制数
#include#includeint main(){ intdec; char *hex,c= 'y'; char *getstr(void); inttoDecimal(char *hex); while(c=='y'||c == 'Y') { hex = getstr(); dec = toDec原创 2014-08-29 22:25:36 · 2219 阅读 · 0 评论 -
将两个字符串连接。解决了c语言输入出现溢出现象
#include#includeint main(){ char*getstr(void); voidconcatenatc(char *s1,char *s2,char * s3); char*s1,*s2,*s3; printf("Please input String1:\n"); s1 =getstr(); printf("P原创 2014-08-29 22:25:28 · 1356 阅读 · 0 评论 -
P279_1019模拟alloc和free
编写一个函数alloc(n)用来在内存区新开辟一个连续的空间(n个字节)。此函数的返回值是一个指针,指向新开辟的连续空间的起始地址。再编写一个函数free(*p)将地址p开始的个单元释放(不能再被程序使用除非再度开辟)#include #include //#define NULL 0#define ALLOCSIZE 1000char *alloc(int n);void fre原创 2014-08-29 22:26:27 · 936 阅读 · 0 评论 -
第68天@365
在3月7号之前,PC上面的microsoft公司的SQL Server 2008不知道上面原因无法登陆,可能是我忘记了相关的密码,也有可能是我之前删错了某些数据库的组成文件,结果导致40错误: 无法登陆。 之后开始找寻解决方法。菜鸟总是在谷歌百度一下,结果还是解决不了,各种端口配置都不行。唯有想用一本万利的方法:重装。之后就是悲剧的一天,好像向同一个女生表白被连N次。原创 2014-08-29 22:25:59 · 403 阅读 · 0 评论 -
p279_10162 答案书版:在字符串有数字与非字符,找出连续的数字作为整数存放并统计个数
输入一个字符串,内有数字和非数字字符,例如:"z123x456 17960?302tab5876"将其中连续的数字作为一个整数,依次存放到数组a中,例如123存放在a[0],345存放在a[1]……统计其共有多少个整数,并输出这些数。#include#includeint main(){ charstr[50],*pstr;//在本章作者很喜欢用同含义不同名的变量指向同原创 2014-08-29 22:26:18 · 1394 阅读 · 0 评论 -
(*p)[n]和*P[n]解析。
#includevoid main(){float score[][4] ={{60,70,80,90},{56,89,67,88},{34,78,90,66}};float *search(float(*pointer)[4],int n);float *p;int i,m;printf("enter the number of student:");scanf("%d",&m原创 2014-08-29 22:25:44 · 1218 阅读 · 0 评论 -
输入10个职工姓名和职工号;按职工号从小到大排序并调整姓名顺序;输入工号查询姓名。
#include#include#define N 10int num[N];char name[N][8];int main(){ voidinput(void); voidsort(void); input(); sort(); intpoint,m; char c ='Y'; while(c=='Y'||c=='y原创 2014-08-29 22:25:34 · 12187 阅读 · 0 评论 -
P318_118 合并两个链表,并按照学号升序排列。用类冒泡排序法对链表进行排序
用类冒泡排序法对链表进行排序;再合并两个链表,并按照学号升序排列。#include#include#include#include#define LEN sizeof(STUDENT)#define STU STUDENTtypedef struct//结构体定义{ long snum; char sname[10]; char ssex; i原创 2014-08-29 22:26:50 · 952 阅读 · 0 评论 -
教材答案有错误P318_1112 将链表逆序排列,即将链头当链尾,链尾当链头
这个答案的解决方法繁琐,没有本人写的简洁,并且效果底下,do_while中嵌套了while循环,导致函数时间复杂度达到n^2级,而本人的是n级,线性级的。#include#includestruct stu{ int num; struct stu *next;}*p1,*p2;struct stu *create(void){ int temp;原创 2014-08-29 22:26:48 · 888 阅读 · 0 评论 -
P318_1112 将链表逆序排列,即将链头当链尾,链尾当链头
#include #include #include #include #define LEN sizeof(STUDENT)typedef struct{ long snum; char sname[10]; char ssex; int sage; struct STUDENT*next;}STUDENT;void print(S原创 2014-08-29 22:26:46 · 1527 阅读 · 0 评论 -
P318_1110_11 建表、删除符合要求的结点或者删除与其他链表相同的结点
p318 第10题和第11题 合集。10、有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同学号的结点11、建一个链表,每个结点包括学号、姓名、性别、年龄,输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,将此结点删去。#include #include #include #include #define LEN sizeof(STUDENT)ty原创 2014-08-29 22:26:44 · 503 阅读 · 0 评论 -
P318_11_9 数三退一 链表实现 输出圈子中的人原来的序号
#include#include#include#define LEN sizeof(struct node)struct node{ int num; struct node *next;};int main(){ struct node*p1,*p2,*head; p2 = p1 = (struct node*)malloc(LEN);原创 2014-08-29 22:26:41 · 437 阅读 · 0 评论 -
P279_1017 写一函数,实现两个字符串的比较,即自己写一个strcmp函数
标签:c it分类:C练习#include#include#include#include#define LENGTH 20#define INCREMENT 10int main(){ intstrcmp1(char *p1,char *p2); char*p1 = (char*)malloc(LENGTH*sizeof(char));原创 2014-08-29 22:26:22 · 2510 阅读 · 0 评论 -
比较字符串,要熟悉使用各种api从此刻开始
#include#include#includeint main(){ void swap(char *s1,char*s2); charstr1[50],str2[50],str3[50]; printf("input 1th string:\n"); gets(str1); printf("input 2thstring:\n");原创 2014-08-29 22:25:40 · 386 阅读 · 0 评论 -
写两个函数,分别求两个整数的最大公约数和最小公倍数
#include#includeint main(){ int gcd(intm,int n); int lcm(inta,int b,int igcd); inta,b,igcd,ilcm; printf("enter rwo number:\n"); scanf("%d,%d",&a,&b); if(a==0) {原创 2014-08-29 22:25:23 · 5679 阅读 · 0 评论 -
数三退一 数组形式 非链表实现 P278_105
#include #include int main(){ intnum[100],i,k,m,n,*p; printf("input number ofperson:n="); scanf("%d",&n); p = num; for(i =0;i { *(p+i) = i+1; } i = 0;原创 2014-08-29 22:25:53 · 379 阅读 · 0 评论 -
about gets and scanf
#include#includeint main(){ chars1[10],s2[10]; int i; printf("Please input the Sting2:\n"); for(i =0;i { scanf("%c",&s2[i]); }//input for(i =0;s2[i]!='\0';原创 2014-08-29 22:25:19 · 441 阅读 · 0 评论 -
应用(*p)[n]指针数组
#includevoid main(){float score[][4] ={{60,70,80,90},{56,89,67,88},{34,78,90,66}};float *search(float(*pointer)[4]);float *p;int i;for(i = 0;i{p = search(score+i);if(p==*(score+i)){printf原创 2014-08-29 22:25:46 · 609 阅读 · 0 评论 -
给出年月日计算第几天。目的:熟悉以及简练闰年年份代码
#include#includeint main(){ intsum_day(int year,int month,int day); intleapYear(int year); int year,month,day,sum; do { sum = 0; printf("Input the date(like:原创 2014-08-29 22:25:32 · 703 阅读 · 0 评论 -
P318_11_1 定义一个结构体(含年月日),计算该日期为本年中第几天。注意闰年
#include #include typedef struct{ int year; int month; int day;}DATE;int days(DATE d1,int flag){ int day = 0; switch(d1.month) { case 12:day = day+30; ca原创 2014-08-29 22:26:39 · 750 阅读 · 1 评论 -
P279_1014 按照输入时逆序,只要用指针做交换即可。若大数据不便于移动,输入时建标识表排序之
#include#includeint main(){ void sort(int *p,intm); int i,n; int *p,num[20]; printf("inputn:"); scanf("%d",&n); printf("Please inputthese numbers:\n"); for(i = 0;i原创 2014-08-29 22:26:12 · 469 阅读 · 0 评论