学习C语言的第二天
linux的基础已经全部学完 复习也只能说马马虎虎。不知不觉c语言也已经开课了两天 。这两天通过上课和自己的网上查阅以及问询老师差不多把大一学习的给想了起来。学习c语言我觉得最重要的就是多敲多练。回想起大一时候的c语言完全停留在理论基础 ,每周两个小时的上机完全解决不到问题。学习的第一天我也对自己很没有信心,老师提一个问题让我们自己去敲我做的更多的事情是去百度搜这个代码的核心。自己完全头绪从哪里开始着手。经过一天的自己我发现自己完全没有什么进步,我开始逼着自己去自己想,拜托百度的依靠。今天我自己居然打出了10个作业代码而且都是自己想出来的逻辑代码,丝毫没有依靠网上。 为此我列举几个我觉得比较金典的题目。
.题目:编写程序,将十进制转换为8进制并输出(不允许使用printf("%o"))
1 #include<stdio.h>
2 #define NUM 8
3 int fun(int n)
4 {
5 int sum = 1;
6 if (n / NUM == 0)
7 {
8 printf("%d", n);
9 return 1;
10 }
11 sum += fun(n / NUM);
12 printf("%d", n % NUM);
13
14 return sum;
15 }
16 int main()
17 {
18 int i ,num ,j , a;
19 printf(“please input num”);
20 scanf("%d",&num);
21 a = fun(num);
22 printf("\n");
23 printf(“sum: %d\n”, a);
24 /*
25 for(i=0;i<10;i++)
26 {
27 a=num%8;
28 j=num/8;
29 num=j;
30 printf("%d",a);
31 if(j==0)
32 {
33 break;
34 }
35 }
36 */
37 return 0;
这个里面运动到了递归,让我了解明白了函数返回的事情
.2 查找字符数组中字符位置(输入hello e 输出2);
1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 char a[10]={0},b;
6 int i ,num;
7 printf(“please input: “);
8 scanf(”%c\n%s %d”,&b,a,&num);
9 int length=strlen(a);
10 for(i=0;i<length-num+1;i++)
11 {
12 a[length-i]=a[length-i-1];
13 }
14 a[num-1]=b;
15 printf("%s",a);
16 return 0;
17 }
3 在字符数组中指定开始位置插入字符串;
1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 char a[20]={0},b[10]={0};
6 int i ,num,n;
7 printf(“please input: “);
8 scanf(”%s%s %d”,a,b,&num);
9 int length=strlen(a);
10 int k=strlen(b);
11 for(i=0;i<length-num+1;i++)
12 {
13 a[length-i+k-1]=a[length-i-1];
14 }
15 for(n=0;n<k;n++)
16 {
17 a[num+n-1]=b[n];
18 }
19
20 printf("%s",a);
21 return 0;
22 }
23
这两个是 字符串中插入字符串和字符的 题目核心是把 数组向后依次移动。
~