當前位置:首頁 » 編程語言 » 調用函數c語言要點
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

調用函數c語言要點

發布時間: 2022-03-04 09:00:39

c語言 調用函數

#include<stdio.h>
#include<stdlib.h>

inttransformation_Symbol(charstr[],doublearr[]){
charstorage[250];
inti=0;
charch=0;
intstorage_size=0;
intarr_size=0;

while(str[i]){
ch=str[i];//把str[i]賦值給ch;
if(ch>='0'&&ch<='9'){//判斷是否為字元數字;
storage_size=0;
while(1){
if(ch<'0'||ch>'9'){//如果不等於字元數字則退出;
break;
}
storage[storage_size]=ch;//把結果儲存
i++;//循環下一個字元;
storage_size++;//循環下一個儲存位置;
ch=str[i];
}
storage[storage_size]='';
arr[arr_size++]=atof(storage);//把結果轉換為數字;
}
switch(ch){
case'+'://如果是字元+則把0儲存為結果
arr[arr_size]=0;
break;
case'-'://如果是字元-則把1儲存為結果
arr[arr_size]=1;
break;
case'*'://如果是字元*則把2儲存為結果
arr[arr_size]=2;
break;
case'/'://如果是字元/則把3儲存為結果
arr[arr_size]=3;
break;
default:
//printf("errorchar:%d ",ch);
returnarr_size;
}
i++;//循環下一個字元;
arr_size++;//循環下一個儲存位置;
}
returnarr_size;
}

voidpriority(charstr[],double*value)
{
doublearr[250];
doublearray[250];
inti=0;
intl=0;
doublech=0;

intsize=transformation_Symbol(str,arr);

//
ch=arr[0];
for(i=1;i<size;i+=2){
if(arr[i]==2){
ch*=arr[i+1];
}elseif(arr[i]==3){
ch/=arr[i+1];
}else{
array[l++]=ch;
array[l++]=arr[i];
ch=arr[i+1];
}
}
array[l++]=ch;

//
ch=array[0];
for(i=1;i<l;i+=2)
{
if(array[i]==0)
ch+=array[i+1];
else
ch-=array[i+1];
}
*value=ch;
}

intmain(intargc,char*argv[]){
charstr[250];
doublevalue=0;
inti=0;
intl=0;

scanf("%s",str);

priority(str,&value);
printf("%g ",value);

return0;
}

㈡ 調用函數c語言

/*
輸入5個整數(空格隔開) : 1 2 3 4 5
5 4 3 2 1
Press any key to continue
*/
#include <stdio.h>
void Reverse(int a[], int n) {
int i,t;
for(i = 0; i < n/2; ++i) {
t = a[i];
a[i] = a[n - 1 - i];
a[n - 1 - i] = t;
}
}

int main() {
int i,n = 5,a[5];
printf("輸入5個整數(空格隔開) : ");
for(i = 0; i < n; ++i) scanf("%d",&a[i]);
Reverse(a,n);
for(i = 0; i < n; ++i) printf("%d ",a[i]);
printf("\n");
return 0;}

㈢ C語言如何調用函數

C語言中,函數調用的一般形式為:

函數名(實際參數表)

對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。

#include<stdio.h>
intfun(intx,inty);//函數聲明,如果函數寫在被調用處之前,可以不用聲明
voidmain()
{
inta=1,b=2,c;
c=fun(a,b);//函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
//自定義函數fun
intfun(intx,inty)//函數首部
{//{}中的語言為函數體
returnx>y?x:y;//返回x和y中較大的一個數
}

(3)調用函數c語言要點擴展閱讀

C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。但是C語言允許在一個函數的定義中出現對另一個函數的調用。

這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。這與其它語言的子程序嵌套的情形是類似的。其關系可表示如圖。

圖表示了兩層嵌套的情形。其執行過程是:執行main函數中調用a函數的語句時,即轉去執行a函數,在a函數中調用b 函數時,又轉去執行b函數,b函數執行完畢返回a函數的斷點繼續執行,a函數執行完畢返回main函數的斷點繼續執行。

㈣ c語言 調用函數

#include "stdio.h"
int s(int i)
{
int k;
if(i==1)
k=1;
else
k=i+s(i-1);
return k;
}
main()
{
int n,s;
printf("please input n:");
scanf("%d",&n);
s=s(n);
printf("s=%d",s);
}

㈤ C語言,調用函數.

你上面這兩種情況是不可以的,首先你這兩種情況要返回確定的值才可以。。。要不然是不可以的,你要把返回值付給一個變數,要不然系統不知道你返回什麼東西。。。不是什麼時候哪個地方都可以調用的,你回去看看書,不過很多情況下是可以的,我們平時自定義的函數無非就兩種一種有返回值的,一種是沒有的。。其實函數就是把功能模塊化,這樣的好處就是使程序功能清晰又條理,C語言本來就是函數型的程序設計語言。。

㈥ c語言常用函數有哪些主要掌握的要點是什麼

標准頭文件包括:
<asset.h> <ctype.h> <errno.h> <float.h>
<limits.h> <locale.h> <math.h> <setjmp.h>
<signal.h> <stdarg.h> <stddef.h> <stdlib.h>
<stdio.h> <string.h> <time.h>
一、標準定義(<stddef.h>)
文件<stddef.h>里包含了標准庫的一些常用定義,無論我們包含哪個標准頭文件,<stddef.h>都會被自動包含進來。
這個文件里定義:
l 類型size_t (sizeof運算符的結果類型,是某個無符號整型);
l 類型ptrdiff_t(兩個指針相減運算的結果類型,是某個有符號整型);
l 類型wchar_t (寬字元類型,是一個整型,其中足以存放本系統所支持的所有本地環境中的字元集的所有編碼值。這里還保證空字元的編碼值為0);
l 符號常量NULL (空指針值);
l 宏offsetor (這是一個帶參數的宏,第一個參數應是一個結構類型,第二個參數應是結構成員名。
offsetor(s,m)求出成員m在結構類型t的變數里的偏移量)。
註:其中有些定義也出現在其他頭文件里(如NULL)。
二、錯誤信息(<errno.h>)
<errno.h>定義了一個int類型的表達式errno,可以看作一個變數,其初始值為0,一些標准庫函數執行中出錯時將它設為非0值,但任何標准庫函數都設置它為0。
<errno.h>里還定義了兩個宏EDOM和ERANGE,都是非0的整數值。數學函數執行中遇到參數錯誤,就會將errno置為EDOM,如出現值域錯誤就會將errno置為ERANGE。
三、輸入輸出函數(<stdio.h>)
文件打開和關閉:
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE * stream);
字元輸入輸出:
int fgetc(FILE *fp);
int fputc(int c, FILE *fp);
getc和putc與這兩個函數類似,但通過宏定義實現。通常有下面定義:
#define getchar() getc(stdin)
#define putchar(c) putc(c, stdout)
int ungetc(int c, FILE* stream);//把字元 c 退迴流 stream
格式化輸入輸出:
int scanf(const char *format, ...);
int printf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sscanf(char *s, const char *format, ...);
int sprintf(char *s, const char *format, ...);
行式輸入輸出:
char *fgets(char *buffer, int n, FILE *stream);
int fputs(const char *buffer, FILE *stream);
char *gets(char *s);
int puts(const char *s);
直接輸入輸出:
size_t fread(void *pointer, size_t size, size_t num, FILE *stream);
size_t fwrite(const void *pointer, size_t size, size_t num, FILE *stream);