查找代码错误#include <stdio.h> void inv(int *p,int n){ int conut=0,k=0; while(k<n){ for(int i=0;i<n;i++){ if(*(p+i)==1){ if(conut%3==0){ k++,conut++; *(p+i)=0; } } } } } void output(int* p,int n){ for(int i=0;i<n;i++){ if(*(p+i)==1){ printf("%d",i+1); } } } int main(){ int n; int arr[10]; printf("input:\n"); scanf("%d",&n); arr[n]={0}; for(int i=0;i<n;i++){ arr[i]=1; } int *p=arr; inv(arr,n); p=arr; output(arr,n); return 0; }
时间: 2023-12-04 16:01:56 浏览: 183
在 main 函数中,数组的初始化方式有误,应该使用大括号 {} 而不是中括号 [],修改代码如下:
```
int main(){
int n;
int arr[10];
printf("input:\n");
scanf("%d",&n);
arr[n]={0}; // 错误的初始化方式
for(int i=0;i<n;i++){
arr[i]=1;
}
int *p=arr;
inv(arr,n);
p=arr;
output(arr,n);
return 0;
}
```
修改后的正确代码:
```
int main(){
int n;
int arr[10] = {0}; // 正确的初始化方式
printf("input:\n");
scanf("%d",&n);
for(int i=0;i<n;i++){
arr[i]=1;
}
int *p=arr;
inv(arr,n);
p=arr;
output(arr,n);
return 0;
}
```
阅读全文
相关推荐

















