可以调用。
创新互联公司-专业网站定制、快速模板网站建设、高性价比惠农网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式惠农网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖惠农地区。费用合理售后完善,十载实体公司更值得信赖。
输入的数据 应合理,例如: Enter e and x: 输入 0.001 0.25
至于公式是否正确,计算结果是否对,未给你仔细看。
int main(void)
{
int max(int x, int y); //加上声明
int a,b,c; //多定义了没用的数据
scanf("%d,%d",a,b);
c = max(a,b);
printf("max is %d",c);
}
int max(int x,int y) //加上返回值类型int
{
int z;
if(xy) z=x; //不要逗号
else z=y;
return z;
}
你的input执行之后,就判断退出了的。
因为你的input函数的参数是TS, 是结构体,而不是结构体指针,因此,在input里面得到的结果,只是input里面局部变量的M这个结构体得到了值,并没有赋值给M1和M2,导致你那里判断M1.n M2.m的时候,直接return 0了
不谢^-^
你的input执行之后,就判断退出了的。
因为你的input函数的参数是TS, 是结构体,而不是结构体指针,因此,在input里面得到的结果,只是input里面局部变量的M这个结构体得到了值,并没有赋值给M1和M2,导致你那里判断M1.n M2.m的时候,直接return 0了
不谢^-^
// 你改变的只是子程序里的局部变量,所以你的主函数里是得不到结果的
#include stdio.h
#include stdlib.h
#include malloc.h
#define MAX_LENGTH_NAME 20
typedef char NOM[20];
int ** open(const char *, int *, int *);
int main(void)
{
int grille_nbl = 0, grille_nbc = 0;
int i, j;
printf("%d %d\n", grille_nbl, grille_nbc);
int ** tab = NULL;
tab = open("1.txt", grille_nbl, grille_nbc);
printf("%d %d\n", grille_nbl, grille_nbc);
for(i = 0; i = grille_nbl; i++)
{
for(j=0; j = grille_nbc; j++)
{
printf("%d ", tab[i][j]);
}
printf("\n");
}
if(tab)
{
free(tab[0]);
free(tab);
}
return EXIT_SUCCESS;
}
int ** open(const char * nom_fichier, int * grille_nbl, int * grille_nbc)
{
int i, j;
FILE * fichier = NULL;
int ** r = NULL;
fichier = fopen(nom_fichier, "rt");
if(fichier==NULL)
{
fprintf(stderr, "Erreur \n");
return NULL;
}
fscanf (fichier, "%d %d", grille_nbl, grille_nbc);
r = (int **)malloc(grille_nbl[0] * sizeof(int *));
if(r == NULL) return NULL;
r[0] = (int *)malloc(grille_nbl[0] * grille_nbc[0] * sizeof(int));
if(r[0] == NULL)
{
free(r);
return NULL;
}
for(i = 1; i grille_nbl[0]; ++i)
{
r[i] = r[i - 1] + grille_nbc[0];
}
for(i = 0; i grille_nbl[0]; ++i)
{
for(j = 0; j grille_nbc[0]; ++j)
{
r[i][j] = 0;
}
}
fclose(fichier);
return r;
}
函数要先声明后使用。函数正确定义之后,还要看语法或算法是否有错误,而导致调用该函数的语句未执行