自由尋覓快樂別人從沒法感受

0%

题目:编写一个函数(参数用指针)将一个3×3矩阵转置。

例如:
1 2 3 ———–> 7 4 1
4 5 6 转置后为 8 5 2
7 8 9 ———–> 9 6 3

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# include <stdio.h>
# define n 3
void fun(int (*a)[n], int (*b)[n]);

int main ()
{
int a[n][n],b[n][n];
fun(a,b);
return 0;
}

void fun(int (*a)[3], int (*b)[3])
{
int i,j;
printf("input 9 numbers:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
scanf("%d",(a[i]+j));
}
}
printf("start:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf("%4d",*(a[i]+j));
}
printf("\n");
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
*(b[i]+j) = *(a[n-1-j]+i);
}
}
printf("after:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf("%4d",*(b[i]+j));
}
printf("\n");
}
}
阅读全文 »

题目:编写一个求字符串长度的函数(参数用指针)。

在主函数中输入字符串,并输出其长度。

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# include <stdio.h>
void len (int * , char *);
int main (void)
{
int sum=0,*p;
char a,*q;
p = &sum;
q = &a;
while (*q=getchar() != '\n')
{
len(p,q);
}
printf("lenth:%d\n",*p);
return 0;
}

void len (int *p, char *q)
{
*p = sizeof(*q) + *p;
}
阅读全文 »

题目:输入10个整数,用其中最小的数与第一个数对换,用其中最大的数与最后一个对换。

需要写出指定的三个函数完成,所有函数的参数均用指针。

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# include <stdio.h>
void cmax (int *);
void cmin (int *);
int main (void)
{
int a[10],i,*p=a;
printf("input 10 number:");
for (i=0;i<10;i++)
{
scanf("%d",p+i);
}
printf("start:");
for (i=0;i<10;i++)
{
printf("%4d",*(p+i));
}
cmax (p);
cmin (p);
printf("\nafter sort:");
for (i=0;i<10;i++)
{
printf("%4d",*(p+i));
}
printf("\n");
return 0;
}

void cmax (int *p)
{
int max=*p,t,j,k;
for (j=1;j<10;j++)
{
if (*(p+j)>max)
{
max = *(p+j);
k = j;
}
}
t = *(p+9);
*(p+9) = max;
*(p+k) = t;
}

void cmin (int *p)
{
int min=*p,t,j,k;
for (j=1;j<10;j++)
{
if (*(p+j)<min)
{
min = *(p+j);
k = j;
}
}
t = *p;
*p = min;
*(p+k) = t;
}
阅读全文 »

题目:编写程序求取一元二次方程的根。

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# include <stdio.h>
# include <math.h>

double function1(double a,double b,double c);
double function2(double a,double b,double c);
int judge(double a);
double jdelta(double a,double b,double c);

int main (void)
{
double a,b,c,delta;
printf("一元二次方程计算器:\n");
printf("input a:");
scanf("%lf",&a);
printf("input b:");
scanf("%lf",&b);
printf("input c:");
scanf("%lf",&c);
if ( judge(a) )
{
printf("error!");
}
else
{
delta = jdelta(a,b,c);
printf("dleta=%f\n",delta);
if (delta>0)
{
printf("方程有两个不等实根:");
function1(a,b,c);
}
else if (delta==0)
{
printf("方程有两个相等实根:");
function1(a,b,c);
}
else
{
printf("方程有两个复数根:");
function2(a,b,c);
}
}
return 0;
}

double function1(double a,double b,double c)
{
double x1,x2,delta;
delta = b*b - 4*a*c;
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("x1=%.2lf,",x1);
printf("x2=%.2lf\n",x2);
return 0;
}

double function2(double a,double b,double c)
{
double x1,x2,delta;
delta = -(b*b - 4*a*c);
x1 = -(b/(2*a))+sqrt(delta)/(2*a);
x2 = -(b/(2*a))-sqrt(delta)/(2*a);
printf("x1=%.2lfi,",x1);
printf("x2=%.2lfi\n",x2);
return 0;
}

int judge (double a)
{
if (a==0)
return 1;
else
return 0;
}

double jdelta (double a,double b,double c)
{
double delta;
delta = b*b - 4*a*c;
return delta;
}
阅读全文 »

题目:输出杨辉三角形,其中行数n由用户输入。

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# include <stdio.h>
int main (void)
{
int i,x,y,a[20][20];
printf("triangle's line:");
scanf("%d",&i);
for (x=1;x<=i;x++) //使每一行的首尾都为1
{
a[x][1]=a[x][x]=1;
}
for (x=3;x<=i;x++) //第三行开始的中间的数都为上一行的左右两个数之和
{
for (y=2;y<=x-1;y++)
{
a[x][y]=a[x-1][y-1]+a[x-1][y];
}
}
for (x=1;x<=i;x++) //打印杨辉三角
{
for (y=1;y<=i-x;y++) //使杨辉三角变成等腰三角形
{
printf(" ");
}
for (y=1;y<=x;y++) //打印杨辉三角
{
printf("%6d",a[x][y]);
}
printf("\n"); //每一行结束时换行
}
return 0;
}
阅读全文 »