为什么会输出错误,关于用c语言自定义函数cal(x,n)计算x^n/n!的结果?
c语言问题 为什么输出错误
排序内层循环数组越界,2维数组用错。
粗糙改了一下,如果数据格式符合应该没问题:
#include<stdio.h>
#include<string.h>
int main()
{
char f(int a[5],char b[5][20]);
int a[5],i,k;
char b[5][20];
printf("请输入五组: 员工号+员工姓名\n");
for(i=0;i<5;i++)
scanf("%d %s",&a[i],b[i]);
f(a,b);
scanf("%d",&k);
for(i=0;i<5;i++){
if (a[i]==k){
printf("%s\n",b[i]);
}
}
return 0;
}
char f(int a[5],char b[5][20])
{
int i,t,j;
char *p,s[20];
for(j=0;j<5;j++)
for(i=0;i<5-j-1;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
strcpy(s,b[i]);
strcpy(b[i],b[i+1]);
strcpy(b[i+1],s);
}
printf("排序后\n");
for(i=0;i<5;i++)
printf("%d %s\n",a[i],b[i]);
}
C语言编写程序输出x的n次方结果,x和n从键盘输入
//文件1 pow.c
#include"linkin.h"
float mypow(float x, int n)
{
float result = 1;
for(int i = 0;i < n; i++)
result *= x;
return result;
}
//文件2 print.c
#include<stdio.h>
#include"linkin.h"
void print(float c){printf("%f",c);}
//文件3 insert.c
#include<stdio.h>
#include"linkin.h"
float insert(void)
{
float x;
scanf("%f",&x);
return x;
}
int insert(void)
{
int x;
scanf("%d",&x);
return x;
}
//文件4 linkin.h
float mypow(float x, int n);
void print(float c);
float insert(void);
int insert(void);
//文件5 main.c
include"linkin.h"
int main()
{
float x;
int n;
x = insert();
n = insert();
print(mypow(x,n));
return 0;
}
为什么我用C语言编写的乘法运算程序结果输出错误
INT型的值范围为-32768-32767
你这个结果是54243,溢出了,当然显示不正常,/U为长整形,可以正常显示
C语言pow函数的输出结果不正确
double r,n,p;// 定义为 int n 对应下面%d
scanf("%f%d", &r,&n);//double 型 格式输入 %lf
r=r+1;
p=pow(r,n);
printf("%f\n", p);//改为%lf
这里你 用float型 输入输出double型数据 会造成数据缺失