c語言數組函數調用函數
Ⅰ c語言數組函數調用
程序是什麼功能,有什麼錯誤 ,請說明。 追問: 編寫程序求兩個整數的所有質公約數、最大公約數、最小公倍數和兩個數之差的絕對值。要求分別編寫五個函數分別實現求兩個整數的最小質公約數int zgys(int x,int y)、所有質公約數void zgyssz(int a[100],int x,int y)、最大公約數int gys(int x,int y)、最小公倍數int gbs(int x,int y)和兩個數之差的絕對值int fun(int x,int y)。 void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i<100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;i<j;i++)t=t*a[i]; return t; } } 回答: 哪些函數是對應的功能。還有,不是要5個函數嗎,怎麼只有三個的。 追問: void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i<100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;i<j;i++)t=t*a[i]; return t; } } 那三個是 int zgys(int x,int y) { int f=1,i,min; min=x<y?x:y; for(i=2;i<=min;i++) {/*判斷i是否是x與y的公約數*/ if(x%i==0&&y%i==0) f=i; break; } return f; } int gbs(int x,int y) { return x*y/gys(x,y); } int fun(int x,int y) { if(x<y)return y-x; else return x-y; } 這三個我做出來了。 回答: 直接說,哪個函數是什麼功能的就行了。還有就是,哪個函數有問題。 追問: 最小公倍數 int gbs(int x,int y){ return x*y/gys(x,y);} 兩個數之差的絕對值 int fun(int x,int y){ if(x<y)return y-x; else return x-y;} 求兩個整數的最小質公約數 int zgys(int x,int y){ int f=1,i,min; min=x<y?x:y; for(i=2;i<=min;i++) {/*判斷i是否是x與y的公約數*/ if(x%i==0&&y%i==0) f=i; break; } return f;} 求兩個整數的所有質公約數 void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i<100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; }} 求兩個整數的最大公約數 int gys(int x,int y){ int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;i<j;i++)t=t*a[i]; return t; }} 後兩個有問題,弄不出來 回答: #include<stdio.h> int n; void main() { int zgys(int x,int y); void zgyssz(int a[ ],int x,int y); int gys(int x,int y); int a,b,c; printf("請輸入兩個數:"); scanf("%d%d",&a,&b); c=gys(a,b); printf("%d\n",c); } void zgyssz(int a[ ],int x,int y) { int i; int zgys(int x,int y); for(i=0;i<100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } n=i+1; } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a,x,y); { int t=1; for(i=0;i<n;i++)t=t*a[i];//這里的個數應該是a[i]的個數n。定為全局變數 return t; } } int zgys(int x,int y) { int f=1,i,min; min=x<y?x:y; for(i=2;i<=min;i++) { if(x%i==0&&y%i==0) { f=i; break; //break要放裡面。 } } return f; }
希望採納
Ⅱ 在C語言中怎麼將子函數中的數組和函數調用出來
來傳送子函數中的數組有多種方法——可以通過函數返回值返回地址傳遞數組;也可以通過函數輸入參數來傳遞數組;還可以通過全局變數來傳遞數組。
子函數本身可以直接在作用域中進行調用。
1、通過函數返回值返回地址傳遞數組。
聲明函數時需要聲明函數返回值類型為對應數組的地址,此時可以返回數組的地址,結合數組元素的地址關系可以傳遞整個數組,同時可以根據數組的特性傳遞多個參數。
注意:子函數是C語言模塊化編程思想的核心,其方法是通過輸入介面和輸出介面實現對黑盒的調用,故對其內部數據的輸入和調用也需要通過輸入介面、輸出介面和程序的公共區域實現。
Ⅲ C語言函數調用的三種方式並分別舉一例。
C語言函數調用的三種方式並分別舉一例。 按函數調用在程序中出現的位置,有三種函數調用方式
1.表達式方式
函數調用出現在一個表達式中,這種表達式稱為函數表達式這時要求函數返回一個確定的值以參加表達式的運算
例如譽陵:y—max(a,b)+max(c,d),兩次函數調用都是表達式的一部分,分別以返回a與b、c與d的最大值參與表達式運算
2.語句方式
把函數調用作為一個語句常用於只要求函數完成一定的操作,不要求函數返回值這在scanf()函數及printf()函數的調用中已多次使用
在其它高級語言中,函數的調用只能以表達式方式進行C語言中的語句方式調用,實際還是以表達式方式調用為基礎
3.參數方式
函數核消調用作為另一個函數的實參
例如:m:max(max(a,b),max(c,d)),max(a,b)與maX(c,d)兩次函數調用作為另一次max()函數調用的實參,用來求出a、b、c、d的最大值
以參數方式調用實際上是表達式調用方式的一種特殊情況 >
unix上java調用c語言函數
和Linux下類似
使用JNI
圓的面積用c語言函數調用怎麼做?
計算圓的面積的編程是:
#include <stdio.h>
#define N 3.14 圓周率
float S(float r)計算面積
{
float s;
s=N*r*r;
return s;
}
void main()
{
float r;
printf("請輸入圓的半徑:");
scanf("%f",&r);
printf("\n該圓的半徑是:%f",S(r));
}
1、C語言的介紹:C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它的應用范圍廣泛,具備很強的數據處理能力慶氏戚,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
2、C語言的基本特性:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
Qt能調用C語言函數嗎
能啊 ,頭文件注意一下就好了。Qt 就是個 C++ 類庫,在 C++ 中怎麼使用 C 語言里的東西,在 Qt 中同樣。
中國物聯網校企聯盟技術部
C語言函數調用 反序輸出一字元串
#include<stdio.h>
#include<string.h>
void printit(char *str,int length)
{
int i;
for(i=length-1;i>=0;i--)
putchar(*(str+i));
putchar('n');
}
void main()
{
char str[80]="";
printf("輸入一個字元串:");
gets(str);
printit(str,strlen(str));
}
vc6.0通過編譯調試正確了
用函數調用的方法,實現任意10個數的求和、、c語言
#include<stdio.h>float add10(float s[]){ int i; float sum=0; for (i=0; i<10; i++) sum+=s[i]; return sum;}void main(){ int i; float n[10]; for(i=0; i<10; i++) { printf("Input %d:", i+1); scanf("%f", &n[i]); } printf("SUM=%f",add10(n));}
c語言函數調用求數組各元素的階乘 急。
基數是奇數的意思嗎?
#include "stdio.h"
#include "conio.h"
main()
{
int a[10],i;
long jc(long x);
for(i=0;i<10;i++)
{
printf("Please input a[%d]:",i);
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
if(i%2!=0)
printf("%ld,",jc((long)a[i]));
}
getch();
}
long jc(long x)
{
long y;
long i,E=1;
if(x!=0)
for(i=1;i<=x;i++)
E*=i;
else E=1;
y=E;
return(y);
} /*定義階乘*/
用函數調用的方式將二進制轉換成十進制的c語言
#include <stdio.h>long long int conv(char b[]){ long long int d=0; int i=0; while(b[i++]) d=d*2+b[i-1]-'0'; return d;}int main(){ char b[64]; printf("二進制數:"); gets(b); printf("十進制數:%lld\n",conv(b)); return 0;}
loadrunner中怎麼調用c語言函數
不用安裝VS。。。在腳本里寫上載入函數就可以了。。。還有你的路徑一定要對啊。。
lr_load ();
Ⅳ C語言調用帶數組的函數為什麼要這么寫
首先int max(int a[])這個函數參數的意思是接受一個數組的首地址,也就是說調用的時候必須是地址,也可以說是指針;
如果調用寫成max(a[10]),這裡面a[10]為第十一個元素的值當然不行了,除非你就是把地址放在裡面了,強制有的編譯器應該可以通過但是會有警告。
其實理解了的話max(a)和max(&a[0])都是可以的,都表示把數組a的首地址傳過去。
可以多去了解一下指針,多上機操作,多練練就會理解的越深。
Ⅳ 關於c語言中數組作為函數參數的函數之間調用問題
1、新建一個數組作為參數項目,如圖所示:
Ⅵ C語言 數組 調用函數
對於有數組參數的函數,編譯程序要為其開辟相應的內存空間,而程序中兩個函數
都有數組參數a[n][m],由於n,m是變數,編譯程序並不知道n,m的具體值,所以不能
通過編譯。
修改:
1.在#include<>下面添加以下偽指令:
#define n 5
#define m 5
2.將函數的參數形式改為:
int sum(int a[n][m]);
void pl(int a[n][m]);
並按此修改程序文件中所有關於這兩個函數的申明和調用即可