#define _CRT_SECURE_NO_WARNINGS 1 // &&并且 ||或者 //switch不一定需要default语句 if语句可以没有else // //x,y均为double型, x=2;y=x+3/2;则y的值为 3.000000 //#include<stdio.h> //int main() //{ // int x = 0; int y = 0; // for (x = 0, y = 0; (y = 123) && (x < 4); x++)//一个等号是赋值 // ; // // return 0; //} //以上循环进行四次 //选择表达式 11||10的结果为 //11为00000000000000000000000000001101 //10为00000000000000000000000000001100按位或 // 00000000000000000000000000001101 为11 //char a; int b; float c; double d;计算结果为double型 //正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数 //要求:输入正整数A B 输出A和B的最小公倍数 //思路1:公倍数min必须能整除a,b。。并且最小公倍数应最小比a,b中最大的数大,从a,b中最大的数开始++ //#include<stdio.h> //int main() //{ // int a = 0; // int b = 0; // scanf("%d %d", &a, &b); // int min = a > b ? a : b;//min为最小公倍数 a > b ? a : b含义为 如果a>b,则将a赋给min,否则将b赋给min // while (1) // { // if (min % a == 0 && min % b == 0) // { // printf("%d", min); // break; // } // min++; // } // return 0; //} //思路2:公倍数min必须能整除a,b。。并且a与一个数相乘的结果除以b,直到能得到一个余数为0,即为最小公倍数 //#include<stdio.h> //int main() //{ // int a = 0; // int b = 0; // scanf("%d %d", &a, &b); // int i = 1; // while (1) // { // if(a*i%b==0) // { // printf("%d", a * i); // break; // } // i++; // } // return 0; //} //将一句话的单词进行倒置,标点不倒置,如 I like Fanshabi. 经过函数变换.Fanshabi.like I //输入要求,输入的字符串不能超过100 //输出要求:依次输出倒置之后的字符串,以空格分隔将一句话的单词进行倒置,标点不倒置,如 I like Fanshabi. 经过函数变换.Fanshabi.like I //思路:三步翻转法: // 1.字符串整体翻转: //2每个单词逆序: void reverse(char*left, char*right)//实现所有字符串翻转部分: 定义两个空间right left并解地址 { while (left < right) { char tmp = 0; tmp = *left; *left = *right; *right = tmp; left++; right--; } } #include<stdio.h> int main() { char arr[100] = {0}; //scanf("%s\n", &arr);//scanf不能有空格,否则打印的结果会中断,所以用gets函数 gets(arr);//scanf不能有空格,否则打印的结果会中断,所以用gets函数 int len = strlen(arr);//求字符串长度,放在len中,如arr[a b c d e f]字符串长度为6 reverse(arr, arr + len - 1);//实现字符串整体翻转部分 //从arr开始,到arr+len-1截止...arr为起始位置0(下标),len为字符串长度6,arr+len-1为最后一个词下标 //每个单词逆序部分: char* start = arr;//将数组名起始地址给start while (*start)//循环,知道start里面赋值的arr变为\0 { char* end = start;//把start赋给end,end往后找,直到找到空格 while (*end != ' ' && *end !='\0')//结束标准有两种:空格和\0 { end++; } reverse(start, end - 1);//start为起始位置,end为空格,需要找的是空格前的字母,所以end-1 if (*end == ' ')//此时排除*end=\0结束时,跳过并还在循环的情况 start == end + 1; else start = end; start = end + 1; } printf("%s\n", arr); return 0; }