代码:
#include <stdio.h>
#include <stdlib.h>
//define N 1000000
int ju[6][6]
int main()
{
int n,s1,s2,s3,s4
int i,k
scanf("%d",&n)
s1=s2=s3=s4=0
for(i=0i<ni++)
{
for(k=0k<nk++)
{
scanf("%d",&ju[i][k])
s1+=ju[i][k]//求总和
}
}
for(i=0i<ni++) s2+=ju[n-1][i]//最后一行,和
for(i=0i<ni++) s3+=ju[i][n-1]//最后一列的和
for(i=0i<ni++) s4+=ju[i][n-1-i] //副对角
printf("sum=%d\n",s1-s2-s3-s4+ju[n-1][n-1]+ju[0][n-1]+ju[n-1][0])
//printf("Hello world!\n")
return 0
}
一下结果均通过vc++6.0试验第一题:
void fun(char *s)
{
int i=0,j=0
char c = s[0]
while(c!='\0')
{
if(c>='0' &&c<='9')
{
s[j] = c
j++
}
i++
c = s[i]
}
s[j] = '\0'
}
第二题:
void fun(int *a,int *n)
{
int i,j = 0
for(i=1 i<=1000 i++)
{
if((i%7 == 0 &&i%11 !=0) || (i%7 != 0 &&i%11 == 0))
{
a[j] = i
j++
}
}
*n = j
}
第三题:
#include <stdio.h>
#include<math.h>
double fun(int n)
{
int i,sum = 0
for(i=0 i<1000 i++)
{
if(i%5 == 0 &&i%11 == 0)
sum += i
}
return sqrt(sum)
}
main()
{
printf("s=%f\n", fun(1000))
}
最后一个题:
int fun(int score[],int m, int up[])
{
int average,sum = 0,i,count = 0
for(i=0 i<m i++)
{
sum += score[i]
}
average = sum/m
for(i=0 i<m i++)
{
if(score[i]>average)
{
up[count] = score[i]
count++
}
}
return count
}
以上全部通过验证,请放心使用,给分吧童鞋~
(x+=x++,x+8,++x)相当于
((x+=x++),(x+8),(++x))
从左到右运算
x+=x++
x+8
++x
所以,又相当于
x+=x ------>x=x+x=6+6=12
x=x+1------>x=x+1=12+1=13
x+8
++x
第三句对x的值没有影响
第四句由于++在x之前,就应该先让x自增1,再使用自增后的x值
也就是:
x+=x ------>x=x+x=6+6=12
x=x+1------>x=x+1=12+1=13
x+8
x=x+1------->x=x+1=14
x ------>14
也就是说,这个逗号表达式最后一项的值就是x的值14
整个(x+=x++,x+8,++x)的值为14
y=2+(x+=x++,x+8,++x)
加上2,所以y的值是16