#include <stdio.h> void fun(int a[]); int main() { int data[10]={12,15,13,14,11,16,10,8,9,18}; int i=0; fun(data); return 0; } void fun(int a[]) { int i=0; for( i=0;i<10;i++){ a[i]=a[i]+10; }}
时间: 2024-03-20 07:43:30 浏览: 14
这段代码没有明显的问题,只是在 `main` 函数中没有输出修改后的数组,可以添加一行代码将数组输出来。
改正后的代码如下:
```c
#include <stdio.h>
void fun(int a[]);
int main() {
int data[10] = {12, 15, 13, 14, 11, 16, 10, 8, 9, 18};
int i;
fun(data);
for (i = 0; i < 10; i++) {
printf("%d ", data[i]);
}
printf("\n");
return 0;
}
void fun(int a[]) {
int i;
for (i = 0; i < 10; i++) {
a[i] = a[i] + 10;
}
}
```
输出结果为 `22 25 23 24 21 26 20 18 19 28`,表示数组每个元素都加上了 10。
相关问题
#include <stdio.h> int fun(int a[]); int main() { int data[10]={12,15,13,14,11,16,10,8,9,18}; int i=0; fun(data[10]); printf("%d\n",data[10]); return 0; } void fun(int a[]) { for(i=0;i<10;i++){ a[i]=a[i]+10; }
这段代码存在几个问题:
1. 函数声明和定义之间的参数不一致。函数声明中的参数是 `int a[]`,而函数定义中的参数是缺少类型和名称的 `a[]`。应该将函数定义中的参数改为 `int a[]` 或者 `int *a`。
2. 函数调用时传递的参数不正确。应该传递数组名 `data`,而不是 `data[10]`。
3. 变量 `i` 没有在 `fun` 函数中声明,应该在函数内部声明。
改正后的代码如下:
```c
#include <stdio.h>
void fun(int a[]);
int main() {
int data[10] = {12, 15, 13, 14, 11, 16, 10, 8, 9, 18};
int i = 0;
fun(data);
for (i = 0; i < 10; i++) {
printf("%d ", data[i]);
}
printf("\n");
return 0;
}
void fun(int a[]) {
int i;
for (i = 0; i < 10; i++) {
a[i] = a[i] + 10;
}
}
```
输出结果如下:
```
22 25 23 24 21 26 20 18 19 28
```
请补充函数fun,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。 例如,当n=13572468时,str="86427531"。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序:*/ #include <stdlib.h> #include <stdio.h> #define N 80 char str[N]; void fun(long int n) { int i=0; /**********FILL**********/ while( [1] ) { /**********FILL**********/ str[i]= [2] ; n/=10; i++; } /**********FILL**********/ [3] ; } int main() { long int n=13572468; printf("*** the origial data ***\n"); printf("n=%ld",n); fun(n); printf("\n%s",str); return 0; }
#include <stdlib.h>
#include <stdio.h>
#define N 80
char str[N];
void fun(long int n) {
int i=0;
while(n!=0) { // [1] 当n不等于0时循环
str[i]=n%10+'0'; // [2] 将n的个位转换为字符并存入str中
n/=10;
i++;
}
str[i]='\0'; // [3] 在str末尾添加结束符'\0'
}
int main() {
long int n=13572468;
printf("*** the origial data ***\n");
printf("n=%ld",n);
fun(n);
printf("\n%s",str);
return 0;
}