/*程序修改题1
给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个
3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。
请改正函数 fun 中的错误或在横线处填上适当的内容并把横线删
除,使它能得出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
int fun()
{
int a[3][3],sum;
int i,j;
/*********found**********/
sum=0;
//______;
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
/*********found**********/
scanf("%d",&a[ i ][ j ]);
//scanf("%d",a[ i ][ j ]);
}
for (i=0; i < 3; i++)
sum=sum+a[ i ][ i ];
printf("Sum=%d",sum);
}
main()
{
fun();
}
/*编程题
编写程序, 实现矩阵(3行3列)的转置(即行列互换)
例如, 输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include
int fun(int array[3][3])
{//
int i,j,t;
for(i=0; i < 3; i++)
for(j=0; j < i; j++)
{ t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t; }
//
}
main()
{
int i,j;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
clrscr() ;
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
printf("%7d",array[i][j]);
printf("");
}
fun(array);
printf("Converted array:");
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
printf("%7d",array[i][j]);
printf("");
}
NONO();
}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int i,j, array[3][3];
FILE *rf, *wf ;
rf = fopen("b0103.in", "r") ;
wf = fopen("b0103.out", "w") ;
for (i=0; i < 3; i++)
for (j=0; j < 3; j++)
fscanf(rf, "%d", &array[i][j]);
fun(array);
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
fprintf(wf, "%7d", array[i][j]);
fprintf(wf, "");
}
fclose(rf) ;
fclose(wf) ;
}
/*程序修改题2
给定程序MODI1.C中函数fun的功能是: 将从键盘上输入的每个
单词的第一个字母转换为大写字母, 输入时各单词必须用空格隔开,
用'.'结束输入。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动 main 函数, 不得增行或删行,也不得更改
程序的结构!
****老王注:本类有输出结果的程序修改题,在评分时先看结果,如果
**** 结果正确,则直接给分;结果不正确或无结果,再一个错
**** 一个错评分。此法并不适用所有类似题。
*/
#include
int fun(char *c,int status)
{
/***********found**********/
if (*c==' ') return 1;
//if (c==' ') return 1;
else
{
if(status && *c <= 'z' && *c >= 'a')
/***********found**********/
*c += 'A' - 'a';
//c += 'A' - 'a';
return 0;
}
}