C/C++
文章平均质量分 76
birdzb
这个作者很懒,什么都没留下…
展开
-
找出数组中最大最小数(用指针)
输入10个整数,将其最小的数与第一个数对换,把最大的数与最后一个数对换,写3个函数完成 1,输入10个数 2,进行处理 3,输出结果程序如下:#include "stdio.h" #define N 10 int max,min,maxindex原创 2007-08-02 11:18:00 · 5873 阅读 · 0 评论 -
C程序设计(第二版) 第八章习题
程序来自配套的习题解答一书8.5写一函数,使输入的字符串反序存放,在主函数中输入和输出字符串#include #include void main(){ void inverse(char str[]); char str[100]; printf("Input String:"); scanf("%s",str); inverse(str); printf("Inverse strin原创 2007-11-12 19:42:00 · 2426 阅读 · 0 评论 -
编译器对变量的内存分配方式
今天看到《C陷阱与缺陷》书中的一段代码:int i,a[10]; for(i=1;i a[i]=0;书中说:在for语句的比较部分本来是ia[10]被设置为0,也就是内存在数组a之后的一个字(word)的内存被设置为0。如果用来编译这段程序的编译器按照内存地址递减的方式来给变量分配内存,那么内存中数组a之后的一个字(word)实际上是分配给了整型变量i。此时本来循环计数器i的值为原创 2007-11-09 22:05:00 · 3636 阅读 · 1 评论 -
C程序设计(第二版)第六章习题
程序来自配套的课后习题一书! 6.1 输入2个正整数m和n,求其最大公约数和最小公倍数#include void main(){ int p,r,n,m,temp; printf("输入2个正整数n,m:"); scanf("%d,%d",&n,&m); if(n { temp=n; n=m; m=temp;//大数放在n中,小数放在m中 } p=n*m;//先将n和m的乘积保存在原创 2007-10-15 22:31:00 · 2292 阅读 · 0 评论 -
字符串基本处理函数(strrep,strins,strdel)
Strrep()是将字符串中的某一子字符串用另一个子字符串的内容来替换。 此法并不会改变字符串的长度,若替换的子字符串较原子字符串长,则会覆盖掉原字符串中的内容。Strins()是将欲插入的字符串插入至原字符串中的某个位置,插入完成后,字符串的总长度会是两个字符串的总和。Strdel()是从s1某个特定的位置pos开始,依某长度len删除子字符串。#include #include原创 2007-10-15 17:18:00 · 14661 阅读 · 2 评论 -
三道baidu试题
1、简述:n个空间,存放a到a+n-1的数,位置随机且数字不重,a为正且未知,现在第一个空间的数被误设置为-1。 说明:已经知道被修改的数不是最小的。例子:n=6,a=2,原始的串为5,3,7,6,2,4。现在被别人修改为-1,3,7,6,2,4。现在希望找到5。思路:充分利用等差数列性质。法一:开一全0的新数组,先找出被修改后的数中的最小值,然后让数组中的所有数依次减去这个原创 2007-10-22 21:52:00 · 992 阅读 · 0 评论 -
字符串基本处理函数(strlen,strcpy,strcat)
Strlen()用来计算字符串的长度,其中并不包含结束字符。此函数会计算字符串的字节长,不把结束字符算在内。Strcpy()是将一个字符串复制到另一个字符串。若要将字符串s2复制到字符串s1中,则s1必须要有足够的空间来容纳s2,最后此函数返回s1的起始地址。Strcat()是将两个字符串合并成一个字符串。若要将字符串s2连接到字符串s1的后面,则必须将s1的结束字符去掉,且字符串s1要有原创 2007-09-27 19:20:00 · 1976 阅读 · 0 评论 -
字符串高级处理函数(Strcmp,Substr,Strstr,partition)
Strcmp是针对两字符串的每个字符两两作比较(区分大小写),直到两字符串中有字符不相等或字符串已结束。若两字符串相等,返回0;若两字符串不相等,则用ASCII码来比较不同的字符,以决定字符串的大小。Substr截取原始字符串(可能是由多个字符串所组成)中一个或一个以上连续字符所组成的字符串,这些截取出来的字符串都是原始字符串的子字符串。Strstr是对原始字符串进行字符的比较,以判断某原创 2007-10-18 21:59:00 · 3041 阅读 · 0 评论 -
让c语言和c++中的“a++,++a”永远不是问题
本文来源于网络!这里主要研究一下c语言和c++中的a++,++a;有双操做数和多操做数之分双操做数:在语言中定义a++是先用后加,++a是先加后用。实际上对双操做数来说的是在一个语句中结束前加和后加的问题。即如k=(++a)+(a++);a++是语句结束后在后加,++a是先加后计算再语句结束。我举几个例子(用反汇编说明)1 int k=2; int val=0; val=(k++)+(k转载 2007-10-18 22:10:00 · 1011 阅读 · 0 评论 -
C程序设计(第二版)第七章习题
程序来自配套的习题解答一书7.2 用选择法对10个整数排序(从小到大) #include void main(){ int i,j,min,temp,a[11];//11个元素只用到了a[1]~a[10],以符合人们习惯 printf("Enter data:/n"); for(i=1;i { printf("a[%d]=",i); scanf("%d",&a[i]); } prin原创 2007-10-15 22:41:00 · 1856 阅读 · 0 评论 -
C程序设计(第二版) 第十章习题
程序来自配套的习题解答一书。10.2输入三个字符串,按由小到大的顺序输出#include #include void main(){ char str1[50],str2[50],str3[50]; void swap(char *p1,char *p2); printf("Input three lines:/n"); gets(str1); gets(str2); gets(str3原创 2007-11-12 19:58:00 · 2605 阅读 · 0 评论