|
/*程序修改题4
给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型
变量s中偶数位上的数,依次构成一个新数放在t中。
例如,当s中的数为:7654321时,t中的数为:642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
#include
/************found************/
void fun (long s, long *t)
//void fun (long s, long t)
{ long sl=10;
s /= 10;
*t = s % 10;
/************found************/
while(s > 0)
// while ( s < 0)
{ s = s/100;
*t = s*sl *t;
sl = sl * 10;
}
}
main()
{ long s, t;
clrscr();
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
/* 编程题
函数fun的功能是:将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数
的百位和个位上, b数的十位和个位数依次放在c数的十位和千位
上。
例如,当a=45,b=12。调用该函数后,c=2415。
注意: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10*100 a b/10*10 b*1000;
//
}
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("bc04.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) ;
}
/* in1.dat 内容如下:
45,12
63,54
14,78
88,91
71,13
12,45
72,32
29,99
34,43
22,44
*/
/* bc04.dat 内容应当如下:
a=45,b=12,c=2415
a=63,b=54,c=4653
a=14,b=78,c=8174
a=88,b=91,c=1898
a=71,b=13,c=3711
a=12,b=45,c=5142
a=72,b=32,c=2732
a=29,b=99,c=9299
a=34,b=43,c=3344
a=22,b=44,c=4242
*/
/*
程序修改题5
给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到
大排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
#include
#include
fun ( int n, int *a )
{ int i, j, p, t;
for ( j = 0; j
{ p = j;
/************found************/
for (i=j 1; i
// for ( i=j 1; i
if ( a[ p ]>a[ i ] )
/************found************/
p=i;
// t=i;
if ( p!=j )
{ t = a[j]; a[j] = a[p]; a[p] = t; }
}
}
putarr( int n, int *z )
{ int i;
for ( i = 1; i <= n; i , z )
{ printf( "M", *z );
if ( !( i ) ) printf( "\n" );
} printf("\n");
}
main()
{ int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
clrscr();
printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );
fun( n, aa );
printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );
}
/* 编程题
函数fun的功能是: 将两个两位数的正整数a、b合并形成一个
整数放在c中。合并的方式是: 将a数的十位和个位数依次放在c数
的个位和百位上, b数的十位和个位数依次放在c数的十位和千位
上。
例如, 当a=45, b=12, 调用该函数后, c=2514。
注意: 部分源程序存在文件PROG1.C中。数据文件IN1.DAT中
的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
void fun(int a, int b, long *c)
{//
*c=a/10 a*100 b/10*10 b*1000;
//
}
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("bc05.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) ;
}
/* in1.dat 内容如下:
45,1
[1] [2] 下一页
|