1.改错题 【题目】下面程序功能是: (1).函数fun(...)是把数组a中各元素的中各位偶数拼接成一个反序的新数值存放到数组b中。假如某元素值为:654321,各位偶数拼接成一个反序的新数值246;元素值为:654300,各位偶数拼接成一个反序的新数值46。 (2).主函数main()利用循环产生10个随机整数存入x数组并输出至屏幕,调用函数fun()产生数组y。最后输出数组y中的元素。 【参考结果】该程序运行后,最后的输出结果是(因随机数,该答案仅供参考): 数组y中各元素数为:4 648 46 62 6 42 84 82 2662 46442 【要求】只允许在原语句上进行修改,可以增加个别说明语句,但不能增加或删除整条程序语句或修改算法。 #include<iostream. h> #include<stdlib. h> void fun(int a, int b) { int i,n; for(i=0;i<10;i++) { int m; n=a[i]; while(n=0) { if(n%10/2==0) m=m∗10+n%10; n/=10; a[i]=m; } } void main() { int i,x[10],y[10]; for(i=0;i<10;i++) { x[i]=rand(); cout<<x[i]<<" "; } fun(x,y); Cout<<''|n Cout<<''|n 数组y中各元素数为:"; for(i=0;i<10;i++) cout<<y[i]<<' \backslash t'; <<' \backslash t'; cout<<"h"; cout<<"h"; }
时间: 2024-04-26 22:22:49 浏览: 20
【修改后的程序】
#include<iostream.h>
#include<stdlib.h>
void fun(int a[], int b[]) { //修改1:函数参数类型应为数组类型,而非int类型
int i,j;
for(i=0;i<10;i++) {
int m=0, n=a[i]; //修改2:变量m需要初始化为0
while(n!=0) { //修改3:while循环条件应为n!=0,而非n=0
if(n%10/2==0) m=m*10+n%10;
n/=10;
}
b[i]=m; //修改4:将结果存入数组b中
}
}
void main() {
int i,x[10],y[10];
for(i=0;i<10;i++) {
x[i]=rand();
cout<<x[i]<<" ";
}
fun(x,y);
cout<<"\n数组y中各元素数为:";
for(i=0;i<10;i++)
cout<<y[i]<<"\t";
cout<<"\n";
}
【修改说明】
1. 函数fun的参数类型应该是数组类型,而非int类型。因为要传递数组a和数组b,需要在函数定义中声明为数组类型。
2. 在函数fun中,变量m需要初始化为0。
3. 在函数fun中,while循环条件应该是n!=0,而非n=0。因为n=0是赋值操作,而非条件判断。
4. 在函数fun中,将结果存入数组b中,而非数组a中。因为要将处理后的结果存入新数组b中。
5. 修改了一些语法错误,如cout拼写错误、缺少分号等。