c语言作业求救求解答

Python014

c语言作业求救求解答,第1张

编译器:codeblock

代码:

#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自增1

所以,又相当于

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