学了这么久才发现

a=1;b=2;c=3;while(a<b<c) {t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);A.1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,2学了这么久才发现。原来a<b<c这个条件是“或”的关系。也就是只要满足一个就执行。
2010-06-03 16:20 | 阅读 711 次 | 评论 0 条

行列互换

#include <stdio.h>/*4、写一个函数,使给定的一个二维数组(3 x 3)转置,即行列互换。*/void change(int *p);main(){ int x,y; int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}}; for(x=0;x<3;x++) { for(y=0;y<3;y++) { printf("【%d】",arr[x][y]); } printf("\n"); } printf("行列交换...
2010-05-24 19:14 | 阅读 870 次 | 评论 0 条

扑克牌

#include <stdio.h>#include <stdlib.h>#include <time.h>#define NUM_COLOR 4 /*花色*/#define NUM_PAI 13 /*牌数*/#define TRUE 1#define FALSE 0typedef int Bool;main(){ Bool in_hand[NUM_COLOR] [NUM_PAI] = {0}; /*将花色和牌数都初始化为FALSE*/ int num_cards, pai, color; const char rank_code[] = {...
2010-05-24 19:11 | 阅读 728 次 | 评论 0 条

最大公约数

#include <stdio.h>int gcd(int m,int n); /*最大公约数*/main(){ int a,b; printf("Enter two numbers:"); scanf("%d%d",&amp;a,&amp;b); printf("%d",gcd(a,b));}int gcd(int m,int n) /*最大公约数函数*/{ int i,c; c=m>n?m:n; for(i=c;i>=1;i--) if((m%i==0)&amp;&amp;(n%i==0)) break; ret...
2010-05-24 19:04 | 阅读 639 次 | 评论 0 条

反向输出10个数字(用指针来实现)

#include <stdio.h>#define N 10 /*声明N为10*/main(){ int a[N],*p; /*声明一个数组a[]和一个指针p*/ printf("Enter %d numbers:\n",N); for(p=a;p<a+N;p++) /*给数组a[N]赋值*/ scanf("%d",p); printf("In reverse order:\n"); for(p=a+N-1;p>=a;p--) /*有最后一个方向输出数组a[N]里面的值*/ printf("%...
2010-05-04 20:39 | 阅读 815 次 | 评论 0 条

还是学习指针的。

#include <stdio.h>main(){ /* int a[5],i,*pa; //定义整型数组和指针 pa=a; //将指针pa指向数组a for(i=0;i<5;i++){ //循环 *pa=i; //将变量i的值赋给由指针pa指向的a[]的数组单元 pa++; //将指针pa指向a[]的下一个单元 } pa=a; //指针pa重新取得数组a的首地址 for(i=0;i<5;i++){ //循环 printf("...
2010-04-26 23:13 | 阅读 954 次 | 评论 1 条

今晚学习的指针

指针的基本概念 在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等, 在第二章中已有详细的介绍。为了正确地访问这些内存单元, 必须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。指针”是指地址, 是常量,“指针变量”是指取值为地址的变量。 定义指针的目的是为了通过指针去访问内存单元。    既然指针变量的值是一个地址, 那么这个...
2010-04-25 22:59 | 阅读 727 次 | 评论 1 条

深入理解C语言指针的奥秘

发现的好东西。当然要留下来看了。。。。。指针是一个 特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。  先声明几个指针放着做例子:  例一:   (1)int*ptr;  (2)char*ptr;  (3)int**ptr;  (4)int(*ptr)[3];   (5)int*(*ptr)[4];    指针的类型  从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部 分就是这个指针的类型。这是指针本身...
2010-04-25 16:15 | 阅读 657 次 | 评论 0 条

C语言编程规范

觉得还可以就抄过来了。。呵呵。基本要求 1.1 程序结构清 析,简单易懂,单个函数的程序行数不 得超过100行。 1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 1.3 尽量使用标准库 函数和公共函数。 1.4 不要随意定义全局变量,尽量使用局部变量。 1.5 使用括号以避免 二义性。 2.可读性要求 2.1 可读性第一,效率第二。 2.2 保持注释与代码完全一致。 2.3 每 个源程序文件,都有 文件头说明,说明规格见规范。 2.4 每个函数,都有函数头说明,说明规格见规范。 2.5 主要变量(结构、联合、类或 对象)定义或引用时,注释...
2010-04-25 15:51 | 阅读 892 次 | 评论 0 条

今天重新学习了高中的数学。

昨天浑浑噩噩的过了一天。。什么都没做。。浪费了一天。。昨晚赶工做了一个网页。今天早上居然破纪录睡到12点多。。。中午重新学习了高中的数学书。看了那些秦九韶算法。辗转相除法,更相减损术。顺便学习了进位制的转换。等等。不过没有找到那个排列和组合的。。忘记要怎么算了。。算了。以后再找吧。嘿嘿。。好像还看了些数列。。感觉自己高中的数学是白学了。。都忘记光了啊。。难过。。。下午或者晚上有时间学习C的话。再来记录下吧。尽量不要浪费了今天。给自己加油。
2010-04-25 15:24 | 阅读 723 次 | 评论 0 条

学指针的一天。

#include <stdio.h>#define LETTER 1void main(){ char str[20]="C Language",c; /**/----输入一行字母字符,根据需要设置条件编译使之能将字母全改为大写(或小写)输出---*int i;while((c=str[i])!='\0'){i++;#if LETTERif(c>='a'&amp;&amp;c<='z')c=c-32;#elseif(c>='A'&amp;&amp;c<='z')c=c+32;#endifprintf("%c",c);}/*--------------------------...
2010-04-23 18:37 | 阅读 809 次 | 评论 7 条

学习函数的一天。。。

#include <stdio.h>int age(int n) /*函数一定要放在main函数的上面*/{ /*计算后一个比前一个数大2的递归*/ int c; if(n==1) c=10; else c=age(n-1)+2; return(c);}int att(int a) /*计算n!的递归*/{ int j; if(a==0||a==1) j=1; else j=att(a-1)*a; re...
2010-04-22 21:35 | 阅读 676 次 | 评论 0 条

今天做的一道题。

1,1,2,3,5,8,13,21,34,55......意思是除了第一个和第二个数是1.其他的值都是前面两个值的和。求第二十个的值。有3种方法。正常的循环。数组。递归。嘿嘿:暂时不写出来。过段时间看看自己还能不能写出来。/*----------------------------------------------------------------------*/ 所有的变量声明必须在程序的开始出。。。。 \0是空字符位。如果程序中遇到时会自动到此结束。 x=i+++j 优先级 !x 判断x==0Char c[...
2010-04-20 13:22 | 阅读 653 次 | 评论 0 条

今天学习到的。

#include <stdio.h>main(){ float a,b; a=123456.789e5; /*浮点数如果用一个很大的数加一个很小的数,它最多精确7个数字。*/ b=a+20; printf("%f\n",b); system("PAUSE"); }还有就是switch语句不能用float的。/*----------------------------------数组-----------------------------------*/数组的问题:不支持动态数组。字符数组。要用字符串数组的话就用指针咯。1.数组的...
2010-04-20 13:11 | 阅读 633 次 | 评论 0 条

由这道题才去了解到的。。。

#include<string.h>int main(){ char a[1000]; /*一开始就能想到char的范围-128~127*/ int i; for(i=0;i<1000;i++) { a[i]=(-1-i); } printf("%d\n",strlen(a)); /*strlen都不知道是用来干嘛的。2010.04.17*/ system("PAUSE"); return 0;}/*由这题去了解到了原码、反码、补码 */ /*还有sizeof和strlen之间的区别关系*/ ...
2010-04-17 13:11 | 阅读 640 次 | 评论 0 条

觉得很有必要摘抄起来给自己看看。

一、sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。二、sizeof的使用方法   1、用于数据类型  sizeof使用形式:sizeof(type)  数据类型必须用括号括住。如sizeof(int)。  2、用于变量  sizeof使用形式:sizeof(var_name)或sizeof var_name  变量名可以不用括号括住。如sizeof (var_name),sizeof var_...
2010-04-17 12:59 | 阅读 605 次 | 评论 0 条

记录下今天学到的一点东西。。。

scanf和getchar函数是输入函数,接收来自键盘的输入数据。scanf是格式输入函数, 可按指定的格式输入任意类型数据。getchar 函数是字符输入函数, 只能接收单个字符。 printf和putchar函数是输出函数,向显示器屏幕输出数据。printf是格式输 出函数,可按指定的格式显示任意类型的数据。putchar是字符显示函数,只能显示单个字符。指针类型  指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来 表示某个量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。4.空类型在调用函数值时,通常应向调 用者返...
2010-04-17 12:45 | 阅读 693 次 | 评论 0 条

输入100以内个数字。按Z后输出个数。

#include<stdio.h>main(){ int s[100]; int t[3]; char i; printf("请输入100个以内的数字,按z结束:\n"); for( i=0;i<100;i++) { scanf("%s",&amp;t); if(strcmp(t,"z")==0) { printf("输入结束,一共输入了%d个数\n",i); system("PAUSE"); exit(0); ...
2010-04-15 21:40 | 阅读 661 次 | 评论 2 条

环输出排序后的十个数字

#include <stdio.h>main(){ int a[10],i,j,k,t; /*声明变量 */ printf("请输入十个数字:\n"); for(i=0;i<10;i++) /*循环输入十个数字 并存入数组*/ { scanf("%d",&amp;a[i]); } printf("\n"); for(i=0;i<9;i++) /*i=k,j=i+1;即:j=k+1; */ { k=i; for(...
2010-04-15 21:34 | 阅读 665 次 | 评论 0 条

水仙花数

#include <stdio.h>main() { int i,j,k,s; /*声明变量i为百位,j为十位,k为个位,s为这个三位数。 */ printf("水仙花数分别为:\n"); for(s=100;s<1000;s++) //因为s是三位数,所以是100到1000之间 { i=s/100; j=s/10%10; k=s%10; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) //水仙花数的条件 { p...
2010-04-15 21:24 | 阅读 578 次 | 评论 0 条