1
上期答案揭晓首先给大家看看上一篇文章C语言经典100题(22)中第三部分编程题的答案:
#include #include int main(){ char i,j,k; for(i='x';i<='z';i++) { for(j='x';j<='z';j++) { if(i!=j) { for(k='x';k<='z';k++) { if(i!=k&&j!=k) { if(i!='x'&&k!='x'&&k!='z') { printf("顺序为:a--%c\tb--%c\tc--%c\n",i,j,k); } } } } } }}
以上实例输出结果为:
顺序为:a--z b--x c--y
2
今日知识分享
从函数返回指针
C 允许您从函数返回指针。为了做到这点,您必须声明一个返回指针的函数,如下所示:
int * myFunction(){...}
另外,C 语言不支持在调用函数时返回局部变量的地址,除非定义局部变量为 static 变量。
现在,让我们来看下面的函数,它会生成 10 个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们,具体如下:
#include #include #include /* 要生成和返回随机数的函数 */int * getRandom( ){ static int r[10]; int i; /* 设置种子 */ srand( (unsigned)time( NULL ) ); for ( i = 0; i < 10; ++i) { r[i] = rand(); printf("%d\n", r[i] ); } return r;}/* 要调用上面定义函数的主函数 */int main (){ /* 一个指向整数的指针 */ int *p; int i; p = getRandom(); for ( i = 0; i < 10; i++ ) { printf("*(p + [%d]) : %d\n", i, *(p + i) ); } return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
15231980531187214107110830097843049495914213012769309710841232504841069321401604461820149169022*(p + [0]) : 1523198053*(p + [1]) : 1187214107*(p + [2]) : 1108300978*(p + [3]) : 430494959*(p + [4]) : 1421301276*(p + [5]) : 930971084*(p + [6]) : 123250484*(p + [7]) : 106932140*(p + [8]) : 1604461820*(p + [9]) : 149169022
3
今日经典编程题题目:打印出如下图案(菱形)。
* *** ************ ***** *** *
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
扫码关注我,手把手带你撸代码
![bd595762852a963d25f5aeffd280c8cd.png](https://i-blog.csdnimg.cn/blog_migrate/9745662fd722d888de1594de653d1356.jpeg)
如果你觉得文章让您增长了知识,
请点击右下方的“在看”
![44535fa957b7f8aa5d14eb992196ded6.gif](https://i-blog.csdnimg.cn/blog_migrate/b0934ce516db43d14090ea081d7f8c13.gif)