解析:
A.*p=*p+1 *p指向year,*p+1即year+1
B.(*p)++ *p指向year, (*p)++即(year)++,前置加加,先使用再加加
C. ++(*p) *p指向year, ++(*p)即++ (year),后置加加,先加加,再使用
D.*p++ ++的优先级高于*,先执行p++,(后置加加,此处)结果为p , 再执行*p,结果仍指向year
解析:
1. 优先级从高到低分别是 * 、(+、-),这里即从左到右依次计算;
2. char型与int型计算,char被整型提升为int型,int型*int型,结果为int型
3. int型与float型计算,int型被算术转换为float型
4. float型与double型计算,float型被算术转换为double型
方法一:
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int num = (a > b ? a : b);//比较出较大数,赋值给num
while (1)
{
if (num % a == 0 && num % b == 0)//较大数num能否整除a和b,若能,此时的num为最小公倍数
{
printf("%d", num);
break;
}
num++;//较大数累加
}
return 0;
}
方法二:a和b的最小公倍数num可解释为:a*i=b*j=num;i、j分别为a、b的倍数
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int i = 1;
while (1)
{
if ((a*i)%b == 0)// a*i=b*j=num
{
printf("最小公倍数为: %d",a*i);
break;
}
i++;
}
return 0;
}
void revece(char * left,char * right)
{
while (left < right)
{
char temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
int main()
{
char b [101] = { 0 };
//输入字符串
gets(b);
int len = strlen(b);
//逆序整个字符串
revece(b, b + len - 1);
//逆序每个单词
char* start = b;
while (*start)
{
char* end = start;
while (*end != ' ' && *end != '\0')
{
end++;
}
revece(start, end-1);
end++;
start = end;
}
//输出字符串
printf("%s", b);
return 0;
}