|
2
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/* 正确程序生成的 bc05.dat 内容应当如下:
a=45,b=12,c=2514
a=63,b=54,c=4356
a=14,b=78,c=8471
a=88,b=91,c=1898
a=71,b=13,c=3117
a=12,b=45,c=5241
a=72,b=32,c=2237
a=29,b=99,c=9992
a=34,b=43,c=3443
a=22,b=44,c=4242
*/
/*程序修改题6
给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,
然后求两条对角线上各元素之和,返回此和数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
#include
#define M 5
/************found************/
int fun(int n, int xx[][M])
//int fun(int n, int xx[][])
{ int i, j, sum=0;
printf( "\nThe %d x %d maix:\n", M, M );
for( i = 0; i < M; i )
{ for( j = 0; j < M; j )
/************found************/
printf( "M", xx[ i ][ j ] );
// printf( "O", xx[ i ][ j ] );
printf("\n");
}
for( i = 0 ; i < n ; i )
sum = xx[ i ][ i ] xx[ i ][ n-i-1 ];
return( sum );
}
main( )
{ int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},
{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
clrscr();
printf ( "\nThe sum of all elements on 2 diagnals is %d.",fun( M, aa ));
}
/* 编程题
函数fun的功能是:将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数
的千位和十位上, b数的十位和个位数依次放在c数的个位和百位
上。
例如,当a=45,b=12。调用该函数后,c=4251。
注意: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10*1000 a*10 b/10 b*100;
//
}
main()
{ int a,b; long c;
clrscr();
printf("Input a, b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %ld\n", c);
NONO();
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ; long c ;
rf = fopen("in1.dat", "r") ;
wf = fopen("bc06.dat","w") ;
for(i = 0 ; i < 10 ; i ) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
/*
45,12
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/*
a=45,b=12,c=4251
a=63,b=54,c=6435
a=14,b=78,c=1847
a=88,b=91,c=8189
a=71,b=13,c=7311
a=12,b=45,c=1524
a=72,b=32,c=7223
a=29,b=99,c=2999
a=34,b=43,c=3344
a=22,b=44,c=2424
*/
上一页 [1] [2]
|