这个程序哪里出错了
#include <stdio.h>
#include <stdio.h>
int minm(int *p, int n)
{
int i;
int min;
if(p==NULL)
return 0;
min=*p;
for(i=1;i<n;++i)
{
if(*(p+i)<min)
min = *(p+i);
}
return min;
}
int main()
{
int i;
int n = 0;
int *array=NULL;
int min;
while (n<=0)
{
print("");
scanf("%d", &n);
}
array = (int*)malloc(sizeof(int)*n);
if(array == NULL)
{
printf("malloc\n");
return -1;
}
for(i=0;i<n;i++)
{
printf("%d=", i+1);
scanf("%d", array + i);
}
min = minm(array, n);
printf("\n=%d\n", min);
free(array);
return 0;
}
请问这个程序哪里出错了,该怎样改呢?
[解决办法]
包含个头文件而已,另外print是笔误吧
#include <stdio.h>#include <stdlib.h>int minm(int *p, int n){ int i; int min; if(p==NULL) return 0; min=*p; for(i=1;i<n;++i) { if(*(p+i)<min) min = *(p+i); } return min;}int main(){ int i; int n = 0; int *array=NULL; int min; while (n<=0) { printf(""); scanf("%d", &n); } array = (int*)malloc(sizeof(int)*n); if(array == NULL) { printf("malloc\n"); return -1; } for(i=0;i<n;i++) { printf("%d=", i+1); scanf("%d", array + i); } min = minm(array, n); printf("\n=%d\n", min); free(array); return 0;}
[解决办法]
这个程序没有错啊!编译的时候
int main()
{
int i;
int n = 0;
int *array=NULL;
int min;
while (n<=0)
{
printf("");//这里应该是printf
scanf("%d", &n);
}
可以运行
[解决办法]
头文件是不是是#include <stdlib.h> ?
[解决办法]
指针移位了
#include <stdio.h>#include <stdlib.h>using namespace std;int minm(int *p, int n){ int i; int min; if(p==NULL) return 0; min=*p; for(i=1;i<n;++i) { if(*(p+i)<min) min = *(p+i); } return min;}int main(){ int i; int n = 0; int *array=NULL; int *tmp=NULL; int min; //while (n<=0) //{ //print(""); scanf("%d", &n); //} array = (int*)malloc(sizeof(int)*n); if(array == NULL) { printf("malloc\n"); return -1; } tmp=array; for(i=0;i<n;i++) { printf("%d=", i+1); scanf("%d", array + i); } min = minm(tmp, n); printf("\n min=%d\n", min); free(array); return 0;}