//?你改變的只是子程序里的局部變量,所以你的主函數(shù)里是得不到結果的
目前創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站托管運營、企業(yè)網(wǎng)站設計、府谷網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
#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;
}
main函數(shù)中下面這一段
void average1(float score[NUM_std][NUM_course]);
void average2(float score[NUM_std][NUM_course]);
void max(float score[NUM_std][NUM_course]);
void fangcha(float score[][NUM_course]);
調用函數(shù)時,應該將參數(shù)實例化
average1(score);
average2(score);
max(score);
fangcha(score);
其實將自定義函數(shù)參數(shù)里的float去掉就行。
這兩個函數(shù)里都有一個 死循環(huán)。
i從1開始取值 ,則i=2*i-1恒成立
可以的,前提是,在使用一個函數(shù)之前必須先對他進行聲明:
//void B();聲明B函數(shù)的存在。
void A()
{
B();//非法,程序執(zhí)行到此時并不知道B函數(shù)的存在。
}
void B()
{
}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴展資料
從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用戶定義函數(shù)兩種。
(1)庫函數(shù)
由C系統(tǒng)提供,用戶無須定義, 也不必在程序中作類型說明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調用。在前面各章的例題中反復用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函數(shù)均屬此類。
(2)用戶定義函數(shù)
由用戶按需要寫的函數(shù)。對于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調函數(shù)模塊中還必須對該被調函數(shù)進行類型說明,然后才能使用。