C语言程序设计--导言余下的样例代码测试

本文通过两个C语言示例程序介绍了如何使用函数和数组。第一个程序演示了如何定义和调用幂运算函数,第二个程序则展示了如何读取一行文本并找出最长的行。文章深入浅出地解释了基本概念及其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来有三个,全弄出来太无聊啦,

截取两个,是关于函数和数组基础知识的。

代码A:

复制代码
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int power(int m, int n);
 5 int main(int argc, char *argv[])
 6 {
 7     int i;
 8     
 9     for (i = 0; i < 10; ++i)
10         printf("%2d %5d %7d\n", i, power(2,i), power(-3,i));
11   
12     system("PAUSE");    
13     return 0;
14 }
15 
16 int power(int base, int n)
17 {
18     int i, p;
19     
20     p = 1;
21     for (i = 1; i <= n; ++i)
22         p = p * base;
23     return p;
24 }
复制代码

代码B(相对于书上源码,我加了几条PRINFT语句,以便能更深入的了解作者编程的思路及实现):

复制代码
 1 #include <stdio.h>
 2 #define MAXLINE   1000
 3 
 4 int getline(char line[], int maxline);
 5 void copy(char to[], char from[]);
 6 
 7 main()
 8 {
 9       int len;
10       int max;
11       char line[MAXLINE];
12       char longest[MAXLINE];
13       
14       max = 0;
15       while ((len = getline(line, MAXLINE)) >0){
16             printf("\nlen's value is : %d\n", len);
17             if (len > max) {
18                     max = len;
19                     copy(longest, line);
20                     }
21             }
22       if (max > 0)
23          printf("%s\n", longest);
24          printf(" max is %d",max);
25       
26       return 0;
27 }
28       
29 int getline(char s[], int lim)
30 {
31     int c,i;
32     
33     for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c !='\n'; i ++){
34         s[i] = c;
35         }
36         
37     if (c == '\n'){
38           s[i] = c;
39           printf("after a new line,s array is %s \n",s);
40           ++i;
41           printf("after a new line,i value is %d \n",i);
42           }
43 
44     s[i] = '\0';
45     return i;
46 }
47 
48 void copy(char to[], char from[])
49 {
50      int i;
51      
52      i = 0;
53      while ((to[i] = from[i]) != '\0')
54            ++i;
55 }
复制代码

 

B截图(注意最长数组前面被填充的算法):

 

如果现实是无极,那内存就是太极,CPU的作用只是力图将线性化的空间还原为立体化的空间。其间当然要涉及映射运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值