哪位大佬可以看看哪里錯了
# include <stdio.h>
? ? ?int main()
{
int i,j,s1=0,s2=0;
int a[5][5];
? ? for(i=0;i<5;i++)
? ? ?for(j=0;j<5;j++)
printf("please input :");
scanf("%d",a[i][j]);
? ? for(i=0;i<5;i++)// 判斷每行元素之和是否相等
? ? {
? ? ? int s=0;
? ?for(j=0;j<5;j++)
? ?{
? s+=a[i][j];
? ?}
?for(j=0;j<5;j++)// 判斷每列元素之和是否相等
?{
? int s=0;
for(i=0;i<5;i++)
{
? s+=a[i][j];
}
for(i=0;i<5;i++)
? {? ? ?s1+=a[i++][i++];
? } ??
? ? for(i=0;i<5;i++)
?{
? ? ?s2+=a[i][4-i];
? ? }
? ? if(s==s1&&s1==s2)
?
? ?printf("這是幻方陣\n");
else?
? printf("這不是幻方陣\n");
? printf("%-3d",a[i][j]);
?printf("\n");
? return 0;
}
}
}
2019-01-20
你的for循環沒有打{}這個符號!
2018-12-06
#include?<stdio.h> #define?m?5 #define?n?5 int?main() {? ????int?i,j,s1=0,s2=0,l_s?=?0,h_s?=?0;? ????int?a[m][n];?for(i=0;i<m;i++)? ????{??? ????????for(j=0;j<n;j++)?? ????????{???? ????????????printf("?please?input?:");??? ????????????scanf("%d",&a[i][j]);??? ????????????if(i?==?0)??? ????????????l_s?+=?a[0][j];???? ????????????getchar();??????? ?????????}?? ?????????h_s?+=?a[i][0];?? ????}?? ????for(i=0;i<m;i++)//?判斷每行之和是否相等?? ????{?? ????????for(j?=?0;j?<?n;j++)?? ????????{??? ????????????s1?+=?a[i][j];???????//?判斷每列之和是否相等???? ????????????s2?+=?a[j][i];?? ????????}?? ????????if(s1?!=?l_s?||?s2?!=?h_s)??????????????????????????//??有不等于?直接結束程序???? ????????{???? ????????????printf("不是幻方陣!\n");???? ????????????return?0;???????//???結束程序;???? ????????}??? ????????else??? ????????{ ????????????s1=0;????? ????????????s2=0;?????//重新接收和???? ????????}?? ????}?? ????????printf("是幻方陣\n");? ????????//printf("%-3d",a[i][j]);????//這句?不太看得懂什么意思我就不改了?? ????????//printf("\n");? ????????return?0;? } //不知道你想完成的是不是這個2018-12-01
好的好的,我試下。
2018-11-23
第一:你為什么把printf("please input :"); 放在for循環中,它不會反復打印嗎?把這個提到循環之外去。
第二:你的地址符沒有打上去,就是scanf中的&。