第3个回答 2019-04-28
#include <stdio.h>
int main()
{
int a[5][5],i,j,s,s0,s1;
printf("请逐行输入5*5魔方的数值\n");
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0,j=0,s=0;i<=4;i++)
{
s+=a[i][j];
}
for(i=0;i<=4;i++)
{
for(j=0,s0=0,s1=0;j<=4;j++)
{
s0+=a[i][j];
s1+=a[j][i];
}
if(s0!=s||s1!=s)
{
printf("No\n");
return 0;
}
}
for(i=0,j=0,s0=0,s1=0;i<=4;i++,j++)
{
s0+=a[i][j];
s1+=a[i][4-j];
}
if(s0!=s||s1!=s)
{
printf("No\n");
return 0;
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
printf("%-3d",a[i][j]);
}
printf("\n");
} system("pause");
return 0;
}\\测试可行本回答被网友采纳
第4个回答 2019-05-04
#include<stdio.h>
void main()
{ int i,x[3][3]={9,8,7,
6,5,4,
3,2,1}, *p=&x[1][1];
//x[1][1]就是5,指针p指向它
//相当于从x[3][3]中提取一个数组a[]={5,4,3,2,1};p在指向a
for(i=0;i<4;i+=2)
printf("%d",p[i]);//1,p[0]就是*p,因为上述关系输出5
//2,p[2],就是p向右移2,就是3
//3,i==4,退出循环
printf("\n");
}本回答被提问者采纳