当前位置:首页 » 编程语言 » c语言norm
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言norm

发布时间: 2022-08-15 19:02:38

1. 求指教啊 哪位大神知道怎样用C编程来实现求三维空间里的两点之间的范数吗谢谢帮忙啊 谢谢

如果知道两点的坐标,P1(x,y,z), P2(h,i,j), 那么,范数很容易求。
// C code
int norm;
norm=(x-h)*(x-h);
norm = norm + (y-i)*(y-i);
norm = norm + (z-j)*(z-j);
norm = sqrt(norm);
最终的norm就是范数。

2. 急求!我的c语言代码运行不出结果,谁能帮帮我

/*
randomize()是什么函数?
VC里貌似没这个,
VC用的是srand(),改了后在VC可以运行
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#ifndef EPSILON
#define EPSILON 1.0e-10
#endif
#define DIM 4
#define MI 1000
int gseidel(double A[DIM][DIM],double b[DIM],double x[DIM])
{
static int first=0;
int i,j,k;
static double x1[DIM],norm;
norm=0.0;
if(first==0)
{
srand( (unsigned)time( NULL ) );
for(i=0;i<DIM;i++)
{x[i]=rand();norm=norm+x[i]*x[i];}
norm=sqrt(norm);
for(i=0;i<DIM;i++)x[i]=x[i]/norm;
first=1;
}
for(k=0;k<MI;k++)
{
for(i=0;i<DIM;i++)
{
x1[i]=b[i];
for(j=0;j<i;j++) x1[i]=x1[i]-A[i][j]*x[j];
for(j=i+1;j<DIM;j++) x1[i]=x1[i]-A[i][j]*x[j];
x1[i]=x1[i]/A[i][i];
}
norm=0.0;
for(i=0;i<DIM;i++)norm=norm+(x1[i]-x[i])*(x1[i]-x[i]);
norm=sqrt(norm);
for(i=0;i<DIM;i++)x[i]=x1[i];
if(norm<EPSILON)goto endd;
}
endd:return(k);
}

/* main.c */

//#include "gseidel.c"
void main(void)
{
int i,itime,iter;
char ifdoyn;
static double A[DIM][DIM]={{0.78,-0.02,-0.12,-0.14},
{-0.02,0.86,-0.04,0.06},{-0.12,-0.04,0.72,-0.08},{-0.14,0.06,-0.08,0.74}};
static double x[DIM],b[DIM]={0.76,0.08,1.12,0.68};
system("cls");
itime=0;
x[0]=4.0;
x[1]=6.0;
x[2]=8.0;
printf("Gauss-Seidel iterative method:\n");
again:iter=gseidel(A,b,x);
itime=itime+iter;
if(iter<MI)itime=itime+1;
printf("Iterative %3d times.\n",itime);
for(i=0;i<DIM;i++)printf("%15.10f\n",x[i]);
if(iter<MI)
{
printf("Success!\n");
getch();
}
else
{
printf("If iterative again?(y/n)\n");
ifdoyn=getch();
if(ifdoyn=='y'||ifdoyn=='Y')goto again;
}

}

3. ·急求!我的C语言代码运行不出结果,谁能帮帮我

运行倒是能运行了,结果好像还不对

/*------------子函数程序--------------*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <math.h>

#ifndef EPSILON
#define EPSILON 1.0e-10
#endif
#define DIM 4
#define MI 1000

int sor(double A[DIM][DIM],double b[DIM],double x[DIM],double omiga)
{
static int first=0;
static double x1[DIM],norm;
int i,j,k;

norm=0.0;
srand(time(0));
if(first==0)
{
for(i=0;i<DIM;i++)
{
x[i]=rand();
norm=norm+x[i]*x[i];
}
norm=sqrt(norm);
for(i=0;i<DIM;i++)
{
x[i]=x[i]/norm;
}
first=1;
}
for(k=0;k<MI;k++)
{
for(i=0;i<DIM;i++)
{
x1[i]=b[i];
for(j=0;j<i;j++)
{
x1[i]=x1[i]-A[i][j]*x[j];
}
for(j=i;j<DIM;j++)
{
x1[i]=x1[i]-A[i][j]*x[j];
}
x1[i]=x1[i]+omiga*x1[i]/A[i][j];
}
norm=0.0;
for(i=0;i<DIM;i++)
{
norm=norm+(x1[i]-x[i])*(x1[i]-x[i]);
}
norm=sqrt(norm);
for(i=0;i<DIM;i++)
{
x[i]=x1[i];
}
if(norm<EPSILON)
{
goto endd;
}
}
endd:
return(k);
}

/*------------主函数程序--------------*/
/*sorm.c:successive overrelaxation method for linear systems*/
void main(void)
{
static double A[DIM][DIM]=
{{0.78,-0.02,-0.12,-0.14},
{-0.02,0.86,-0.04,0.06},
{-0.12,-0.04,0.72,-0.08},
{-0.14,0.06,-0.08,0.74}};
static double x[DIM],b[DIM]=
{0.76,0.08,1.12,0.68};
double omiga=1.03;
int i,itime,iter;
char ifdoyn;

system("cls");
itime=0;
printf("SOR iterative method:\n");

again:
iter=sor(A,b,x,omiga);
itime=itime+iter;
if(iter<MI)itime=itime+1;
{
printf("Iterative %3d times.\n",itime);
}
for(i=0;i<DIM;i++)
{
printf("%15.10f\n",x[i]);
}
if(iter<MI)
{
printf("Success!\n");
getch();
}
else
{
printf("IF iterative again?(y/n)\n");
ifdoyn=getch();
if(ifdoyn=='y'||ifdoyn=='Y')
{
goto again;
}
}
}

4. c++ 中norm函数的意思

C++ complex复数类的norm是取值,就是直角边斜边的取法,勾股算一下。那个回答= =,不懂瞎说什么扯东扯西

5. C语言错误 也没提示有错误 打开文件是不能打开

思路方法都不错,就是不明白那个substance有什么用、、、而且那里出错。还有那个"ceshiti1xz10.txt"文件要放在程序的同一个目录下,就OK啦!
代码如下:
#include <stdio.h>
#include <stdlib.h>
char ch;
void main(void)
{
FILE *fp;
char x,start,answer[20],norm[]={'C','A','D','A','D','C','B','A','C','A','B','A','B','C','D','D','A','B','C','A'}/*试卷一选择题答案*/;
int choicetest,i,sum=0;
printf("是否开始测试:Y or N \n");/*询问是否开始测试*/
scanf("%s",&start);
if(start=='Y'||start=='y')
{
printf("本测试题库共20套,请您选择相应的测试题号码:\n"); /*询问测试卷号*/
scanf("%d",&choicetest);/*输入试卷号*/
switch(choicetest)
{
case 1:
{
if((fp=fopen("ceshiti1xz10.txt","r"))==NULL)/*打开选择文件*/
{
printf("打开文件失败!");
exit(0);
}
while(!feof(fp))
{
x=fgetc(fp);
putchar(x);
};
if(fclose(fp))
{
printf("关闭文件失败!\n");
exit(0);
}
printf("\n请分别从大写英文ABCD选出一个输入1~20题的答案(答案之间不要加任何字符 ):");/*答题要求*/
scanf("%s",&answer);
while(answer[19]!='A'&&answer[19]!='B'&&answer[19]!='C'&&answer[19]!='D') /*判断答案是否符合要求*/
{
printf("您输入的题目数或者字符出现错误,请查询后再次输入。");
printf("\n请用大写英文输入1~20题的答案(答案之间不要加任何字符 ):");
scanf("%s",&answer);
}

for(i=0;i<20;i++)/*显示做错的题目*/
{
if(answer[i]!=norm[i])
{
printf("您做错的题目是选择题第%d题\n",i+1);
printf("您选的答案是%c\n",answer[i]);
printf("这道题的正确答案是%c\n\n",norm[i]);
}
else
sum+=2;
}

break;
}
}
}
printf("您的得分是%d\n",sum);

}

6. c语言有matlab中的normpdf和normcdf函数吗

normcdf函数用来获得正态分布的概率分布函数; normpdf用来获得正太分布的概率密度函数。例如, norcdf(0,0,1)的值是0.5,表示N(0) = 0.5 第二个参数是均值,第三个参数是标准差。

7. 请指教C语言的几个问题。

1.# include <stdlib.h>
stdlib.h
stdlib 头文件里包含了C语言的一些函数
该文件包含了的C语言标准库函数的定义
stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。

2. #include <conio.h>
conio.h不是C标准库中的头文件。
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
包含的函数
cgets(char *);
cprintf(const char *, ...);
cputs(const char *);
cscanf(const char *, ...);
inp(unsigned short);
inpw(unsigned short);
getch(void);
getche(void);
kbhit(void);
outp(unsigned short, int);
outpw(unsigned short, unsigned short);
putch(int);
ungetch(int);
void _Cdecl clreol (void);
void _Cdecl clrscr (void);
void _Cdecl delline (void);
int _Cdecl gettext (int left, int top, int right, int bottom,
void *destin);
void _Cdecl gettextinfo (struct text_info *r);
void _Cdecl gotoxy (int x, int y);
void _Cdecl highvideo (void);
void _Cdecl insline (void);
void _Cdecl lowvideo (void);
int _Cdecl movetext (int left, int top, int right, int bottom,
int destleft, int desttop);
void _Cdecl normvideo (void);
int _Cdecl puttext (int left, int top, int right, int bottom,
void *source);
void _Cdecl textattr (int newattr);
void _Cdecl textbackground (int newcolor);
void _Cdecl textcolor (int newcolor);
void _Cdecl textmode (int newmode);
int _Cdecl wherex (void);
int _Cdecl wherey (void);
void _Cdecl window (int left, int top, int right, int bottom);
har *_Cdecl cgets (char *str);
int _Cdecl cprintf (const char *format, ...);
int _Cdecl cputs (const char *str);
int _Cdecl cscanf (const char *format, ...);
int _Cdecl getch (void);
int _Cdecl getche (void);
char *_Cdecl getpass (const char *prompt);
int _Cdecl kbhit (void);
int _Cdecl putch (int c);
int _Cdecl ungetch (int ch);

3.system("CLS");
清屏处理,
需要包含头文件stdlib.h