上一页 1 ··· 3 4 5 6 7

2014年3月16日

一段C程序分析

摘要: 1 #include 2 #include 3 4 void main() 5 { 6 int i; 7 int sum = 0; 8 char ch; 9 10 printf("请输入一串整数和任意数目的空格: ");11 12 while( scanf("%d", &i) == 1 )13 {14 sum += i;15 16 while( (ch=getchar()) == ' ' )17 ;18 if( ch == '\n' ) 19 {20 ... 阅读全文

posted @ 2014-03-16 16:31 stackhacks 阅读(178) 评论(0) 推荐(0)

百练 2972 确定进制 解题报告

摘要: 思路:选择一个进制B,按照该进制将被乘数,乘数,乘积分别转换成10进制,然后判断等式是否相等。输出使得等式相等的最小的B即为所求。代码:#include#includelong b2ten(char *x, int b){ int ret = 0; int len = strlen(x); for(int i = 0; i = b) return -1; ret *= b; ret += x[i] - '0'; } return (long)ret;}int main(){ int n, b; char... 阅读全文

posted @ 2014-03-16 13:55 stackhacks 阅读(248) 评论(0) 推荐(0)

百练 2973 Skew数 解题报告

摘要: 思路: 计算出每一个skew数的不同位数表示的权值,然后用该位与权值相乘。用int数组来装权值,用char数组来装skew数。代码:#include#includeint main(){ int i, k, sum; int base[32]; char skew[32]; base[0] = 1; for(i = 1; i < 32; i++) base[i] = 2*base[i-1]+1;//计算每一位的基值 while(1) { scanf("%s", skew); if(strcmp(skew, "... 阅读全文

posted @ 2014-03-16 13:36 stackhacks 阅读(166) 评论(0) 推荐(0)

百练 2734 十进制到八进制 解题报告

摘要: 链接:http://poj.grids.cn/practice/2734/代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int main() 7 { 8 //freopen("F:\\input.txt","r",stdin); 9 10 int a;11 cin>>a;12 13 char chs[7];14 int i = 0;15 do16 {17 chs[i++] = (a % 8) + '0';18 ... 阅读全文

posted @ 2014-03-16 12:57 stackhacks 阅读(252) 评论(0) 推荐(0)

2014年3月11日

真正明白C语言二级指针(转载)

摘要: 指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的指针.....n级指针就是....但是可能大家比较不容易理解的是,二级指针或者多级指针用在哪里呢?怎么使用呢?有没有必要用呢? 现在我就谈谈C指针的比较经常用到的地方:我们都知道C语言中函数传递参数都是传递"值"的,如下:void fun(void){ int tmp = 0; change(tmp); printf("################ tmp = % 阅读全文

posted @ 2014-03-11 21:49 stackhacks 阅读(1001) 评论(0) 推荐(1)

指针数组与数组指针

摘要: 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针。例如int *a[3]; 数组指针:a pointer to an array,即指向数组的指针。例如 int (*b)[3]; 具体使用场景如下: 输出如下: 阅读全文

posted @ 2014-03-11 20:33 stackhacks 阅读(272) 评论(0) 推荐(0)

二维数组与二级指针

摘要: Fun (int **p){}这里面的int **p //这里的p不是二维数组的指针,而是指向指针的指针,即二级指针。正确的二维数组的指针应该是:Int a[2][2];Int (*p)[2];//定义时无论数组维数,只可忽略第一维例如:int a[2][2]={0,1,2,3};int **p=(int**)a;//强制将二维数组指针转为指向指针的指针则此时p[0]=0;p[1]=1;p[2]=2;p[3]=3;而p[0][0]=*(*(p+0)+0)=**p;p[0][1]=*(*(p+0)+1);对于p[0][0]:由于*p=0; ====> **p=*(0);引用地址为零的内存, 阅读全文

posted @ 2014-03-11 20:16 stackhacks 阅读(212) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7

导航