重拾C,一天一点点_6

break与continue
continue只能用于循环语句
goto
最常见的用法是终止程序在某些深度嵌套的结构中的处理过程,例如一次跳出两层或多层循环。break只能从最内层循环退出到上一级的循环。

//简单测试

 1 #include <stdio.h>
 2 main(){
 3     int i = 10;
 4     if(i > 0){
 5         //break;        //error
 6         //continue;        //error
 7         goto test;        
 8     }else{
 9         ;
10     }
11     printf("hello
");
12     test:    {
13         printf("world
");    //仅输出world 
14     }            
15     return 0;
16 }
View Code

C程序可以保存在一个或多个源文件中,各个文件可以单独编译,并可以与库中已编译过的函数一起加载。
函数定义:
    返回值 函数名(参数声明){
        声明和语句
}
dumy(){}    //该函数不执行任何操作也不返回任何值,如函数定义中省略了返回值类型,则默认为int类型。但在C99中定义函数必须有返回值。

//某字符在某字符串中的位置

 1 #include <stdio.h>
 2 //#include <string.h>
 3 int strrindex(char s[],char c);
 4 int strlen(char s[]);
 5 
 6 main(){
 7     printf("%d
", strrindex("abcdefg",'c'));    //4
 8     printf("%d
", strrindex("abcdefg",'o'));    //-1
 9     printf("%d
", strlen("abcdefg   "));        //10,未去尾部空格 
10     
11     return 0;
12 }
13 
14 /*****返回c在s中最后出现的位置****/
15 int strrindex(char s[],char c){
16     int n,i,j = 0;
17     for(i=strlen(s)-1,j=0; i>=0; i--,j++){
18         if(s[i] == c){
19             return j;
20         }
21     }
22     return -1;
23 }
24 
25 int strlen(char s[]){
26     int i = 0;
27     while(s[i] != ''){
28         i++;    
29     }
30     return i;
31 }
View Code

//字符串c在字符串s中首次出现的位置,未找到返回-1

 1 #include <stdio.h>
 2 int strindex(char s[],char t[]);
 3 
 4 main(){
 5     printf("%d
", strindex("abcdefgabc","abc"));    //0
 6     printf("%d
", strindex("abcdefgabc","g"));    //6
 7     printf("%d
", strindex("abcdefg","xyz"));    //-1
 8     return 0;
 9 }
10 
11 /*****返回c在s中首次出现的位置****/
12 int strindex(char s[],char t[]){
13     int i,j,k;
14     for(i=0; s[i]!=''; i++){
15         for(j=i,k=0; t[k]!=''&&s[j]==t[k]; k++,j++) 
16             ;    
17         if(k > 0 && t[k] == ''){
18             return i;
19         }
20     }    
21     return -1;
22 }
View Code

自己在算法面前就像一个傻子,脑袋怎么就不会转。。。

今晚有点顶不住了,明晚继续,坚持!

补充一道刚看到的题:

在老北京的一个胡同的大杂院里,住着4户人家,巧合的是每家都有一对双胞胎女孩。这四对双胞胎中,姐姐分别是ABCD,妹妹分别是abcd。一天,一对外国游人夫妇来到这个大杂院里,看到她们8个,忍不住问:“你们谁和谁是一家的啊?”B说:“C的妹妹是d。”C说:“D的妹妹不是c。”A说:“B的妹妹不是a。”D说:“他们三个人中只有d的姐姐说的是事实。”如果D的话是真话,你能猜出谁和谁是双胞胎吗?

 1 D:true;
 2 char s[] = "sister";
 3 if(B:true){
 4     (B's == d) && (C's == d)=>B:false;
 5     C's != d;
 6 }
 7  
 8 if(C:true){
 9     (C's == d) && (C's != d)=>C:false;
10     D's = c;
11 }
12 then (B:false) && (c:false)=>A:true=>{
13     A's = d;
14     (B's !=a) && (D's = c) && (A's = d)=>B's=b=>C's=a;
15 }
16 so
17 A's = d;
18 B's=b;
19 C's=a;
20 D's = c;

原文博客地址:http://www.cnblogs.com/lltong/

原文地址:https://www.cnblogs.com/lltong/p/3379812.html