#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 18:43:30 浏览: 45
这段代码没有明显的问题,只是在 `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
```
#include<stdio.h> #include<stdlib.h> typedef struct Node { int data; struct Node *next; }Node; int strlen(Node *p,int k) { int i,j; while(p!=NULL) { p=p->next; i++; } j=i-k; return j; } Node * fun(Node *h, int x, int k) { Node * p; Node * h1=h; int i; p=(Node*)malloc(sizeof(Node)); p->data=x; p->next=NULL; strlen(h,k); for(i=0;i<k-1;h1=h1->next) ; p->next=h1->next; h1=p; return h1; } void print(Node * p) { for(;p!=NULL;p=p->next) ; printf("%d\n",p->data); } int main(void) { Node * h1=NULL; Node n1,n2,n3,n4; n1.data=10; n2.data=20; n3.data=5; n4.data=15; h1=&n1; n1.next=&n2; n2.next=&n3; n3.next=&n4; n4.next=NULL; fun(h1, 12,2); print(h1); return 0; }为什么报错
在代码中,有一个函数 `strlen`,但是这个函数与 C 标准库中的同名函数重名了,导致编译器无法识别。建议更改函数名,或者将该函数内部使用的变量 `i` 初始化为0。此外,`fun` 函数中的循环也有问题,应该将 `i` 的初始值设为1,每次循环 `i` 都要加1。最后,`fun` 函数中的 `h1=p;` 应该改为 `h1=p->next;`。
阅读全文