c语言中%是求余的意思
x%=(y%=2)
就是:x=x%((y=y%2))
就是先求y%2的值
并将y%2的结果赋值给y
然后求x%y(这里的y是赋值后的y)的值
并将x%y的值赋给x
printf("%d",x%=(y%=2))
最终就是显示赋值后的x的值
希望能帮助你哈
顺时针旋转,(xa, ya) 坐标变换: xb = ya yb = (n-1)- xa#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int i,j,xa,ya,xb,yb,n
int *p,*q
printf("输入n:")
scanf("%d", &n)
p = (int*) malloc(sizeof(int) * n*n)
q = (int*) malloc(sizeof(int) * n*n)
for (i=0i<ni++) {
for (j=0j<nj++) {
*(p+i*n+j) = i*n+j+1
}
}
for (i=0i<ni++) {
for (j=0j<nj++) {
printf("%4d ", *(p+i*n+j))
}
printf("\n")
}
printf("\n")
//旋转90度
for (i=0i<n*ni++) {
xa= i/nya= i%n
xb = yayb = n-1-xa
*(q + xb*n+yb) = *(p+i)
}
printf("顺时针旋转90---------------------------------------------\n")
for (i=0i<ni++) {
for (j=0j<nj++) {
printf("%4d ", *(q+i*n+j))
}
printf("\n")
}
printf("\n")
free(p)
free(q)
return 0
}
用C语言计算两点之间距离的参考代码:
#include <stdio.h>
#include <stdlib.h>
#include "math.h"
typedef struct point {
double x
double y
}point
point array[30001]
double distance(point a,point b)
int main(int argc, char *argv[])
{
while(1){
int n,i,j,count
double maxdis,temp
scanf("%d",&n)
for(i = 0i<ni++){
scanf("%f %f",&array[i].x,&array[i].y)
}
for(i = 0i<ni++){
//printf("%d %d\n",array[i].x,array[i].y)
//printf("dis:%.2f\n",distance(array[0],array[i]))
}
maxdis = 0.0
for(i = 0i<ni++){
for(j = ij<nj++){
if(distance((array[i]),(array[j])) >maxdis ){
//printf("maxdis = :%.2f\n",distance((array[i]),(array[j])))
maxdis =distance((array[i]),(array[j]))
}
}
}
printf("%.2f",maxdis)
}
system("pause")
return 0
}
//计算x y之间距离
double distance(point a,point b){
return sqrt( (a.x - b.x)*(a.x - b.x) + (a.y -b.y)*(a.y -b.y) )
}
扩展资料:
C语言编写注意事项:
1、所有自定义变量 必须声明才能使用。
2、每行只书写一条语句, 在运算符两边加上一个空格, 便于阅读。
3、整数除法将自动舍位, 不会进行四舍五入的操作。
4、for(初始化部分条件部分增长部分) - 比while 更适用于初始化和增长步长都是单条语句情况下。
5、使用 #define 名字 替换文本 对部分"幻数" 赋予意义便于阅读 #define结尾不需要“”号结束。