null pointer assignment

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:27:11
#include "stdio.h"
main()
{
int n,N;
float U,I,P,S,xx;
float *u,*i,*k,*g;
scanf("%d",&N);
u=(float *)malloc(N*sizeof(float));i=(float *)malloc(N*sizeof(float));
if(u==NULL||i==NULL)
printf("error");
printf("ok\n");
U=0;I=0;P=0;S=0;xx=0;k=u;i=g;
printf("%s\n","shu ru dian ya dian liu");
for(n=0,u=k,i=g;n<=N-1;n++,u++,i++)
{
scanf("%d,%d",*u,*i);
}
printf("\n");
for(n=0,u=k,i=g;n<=N-1;n++,u++,i++)
{
U=(float)((*u)*(*u)+U);I=(float)((*i)*(*i)+I);P=(float)(U*I+P);
}
U=sqrt(U/N);I=sqrt(I/N);

P=P/N;S=U*I;xx=P/S;
printf("P=%f,S=%f,xx=%f\n",P,S,xx);
}
在输入数据后,运行结果总是:
floating point error overflow
null pointer assignment

scanf("%d,%d",*u,*i); //scanf("%f,%f",u,i);
U=0;I=0;P=0;S=0;xx=0;k=u;i=g; //g没赋值就使用了。
printf("%s\n","shu ru dian ya dian liu");
for(n=0,u=k,i=g;n<=N-1;n++,u++,i++) //用指针混乱

#include "stdio.h"
#include <iostream>
main()
{
int n,N;
float U,I,P,S,xx;
float *u,*i,*k,*g;
scanf("%d",&N);
u=(float *)malloc(N*sizeof(float));i=(float *)malloc(N*sizeof(float));
if(u==NULL||i==NULL)
printf("error");
printf("ok\n");
U=0;I=0;P=0;S=0;xx=0;k=u;i=g;
printf("%s\n","shu ru dian ya dian liu");
for(n=0,u=k,i=g;n<=N-1;n++,u++,i++)
{
// 原文scanf("%d,%d",*u,*i);
scanf("%d,%d",u,i);
}
printf("\n");
for(n=0,u=k,i=g;n<=N-1;n++,u++,i++)
{
U=(float)((*u)*(*u)+U);I=(float)((*i)*(*i)+I);P=(float)(U*I+P