1樓:金色潛鳥
標準的 c 語言規定:變數要先宣告後使用;在一個定義域中,宣告要寫在語句的前面,即語句要寫在宣告的後面。
函式呼叫,屬於「語句」,函式原型宣告屬於「宣告」。
c 語言 的 基本結構 是由 一個一個 函式組成,其中有一個 主函式。
寫函式呼叫語句以前,必須在它之前 已有了 函式定義,若沒出現函式定義,則要已有函式原型宣告。
可以這樣:
int fun1(int x, int y); // 函式原型宣告。有分號。
int main()
int fun1(int x, int y) // 函式定義
------------
也可以這樣:
int fun1(int x, int y) //函式定義
int main()
====
一對大括號內,也可在宣告部分 加原型宣告,語句部分,則可呼叫,例如:
int main() ;
...; }
2樓:**伺服器
這個是很正常的啊,你在函式呼叫之前宣告並且初始化相關的變數才能夠使用的,我們用vc比較少,之前用vs,後來因為電腦太卡給解除安裝了,用的dev,這個比較小,而且能夠一步步debug除錯。只能說一個編譯器有一個編譯器的規矩,你呼叫函式前需要把必要的工作都做了。
c語言題目,見下圖!
3樓:篤俠
#include
int main()
printf("s=%.2f\n",s);
return 0;}
4樓:匿名使用者
#include
int main()
int i;
float sum = 0;
int a = 1, b = 2;
for (i=0;i<20;i++)
sum += (float)b/a;
int tem = b;
b += a;
a = tem;
printf ("%f\n",sum);
return 0;
5樓:匿名使用者
main()
就是個斐波那數列。斐波那數列會了,累加求和會了,兩段程式合併到一塊不就行了?
6樓:匿名使用者
dengwo@dengwo-thinkpad-edge-e530:~/bowl/shangdongoj$ cat printhe.c
#include
int main(void)
printf("%f\n", he);
return 0;
}dengwo@dengwo-thinkpad-edge-e530:~/bowl/shangdongoj$
c語言程式設計下圖怎麼做?
7樓:自我程式設計
方法有很多種:
一、直接迴圈,通過變數計數判斷每個字元輸出的內容。缺點:邏輯繁瑣。
二、把影象看成固定長度的多行字串(最大行寬用常量或動態陣列)。
這樣兩個題目就都統一成一個思路,那就是迴圈重複列印一個字串。而這個字串在每次迴圈都改變自己的內容。
這裡,如指標移動到兩頭,程式就結束,那麼列印的就是題目二的三角形。如到兩頭再往回走,列印的就是菱形。
另外要注意:1、菱形是固定字元黑桃。而三角形是迴圈列印大寫字母。
2、字元之間是有寬度的,不能直接用%s輸出一行字串,需要迴圈輸出指定寬度字元。
因此,按照程式設計思想,輸出列印一個字串以及迴圈大寫字母這兩個功能是要重複呼叫的,要單獨寫函式。
下面是**:
#include
#define mlen 50//圖形最大行寬度
void show1();//對應題目1的菱形
void show2();//對應題目2的三角形
void showline(char lnstr,int n,int d);//列印輸出一行圖形,引數:行陣列、陣列長度、字元間隔大小
char getletter();//每次呼叫,返回a~z的一個字母,字母迴圈
int main()
show1();
show2();
return 0;
void showline(char lnstr,int n,int d)
int i;
for(i=0;iprintf("\n");
char getletter()
char b;
static char w='a';
b=w;
if(w<'z') w++;
else w--;
return b;
void show1()
int i,flag=1,n=0;
char lnstr[mlen]=,*p0=null,*p1=null;
while(n<=1 || n%2==0 || n>=mlen)
printf("請輸入菱形最大寬度n(字元個數n必須是大於1且小於%d的奇數):",mlen),scanf("%d",&n);
for(i=0;ip0=p1=&lnstr[n/2];//指標初始指向中間
while(p0<=p1)
if(flag) *p0=*p1=5,p0--,p1++;//標識為1,兩指標指向地址值變黑桃,之後分別向兩邊移動
else *p0=*p1=' ',p0++,p1--;//標識為0,兩指標指向地址值變空格,之後分別向中間移動
showline(lnstr,n,2);
兩指標移動到兩頭,開始反向移動
void show2()
int i,n=0;
char lnstr[mlen]=,*p0=null,*p1=null,*p=null;
while(n<=1 || n%2==0 || n>=mlen)
printf("請輸入三角形底邊寬度n(字元個數n必須是大於1且小於%d的奇數):",mlen),scanf("%d",&n);
for(i=0;ip0=p1=&lnstr[n/2];//指標初始指向中間
while(1)
showline(lnstr,n,2);
if(p0+1==&lnstr[0]) break;
p=p0;
while(p<=p1) *p=getletter(),p++;
//兩指標之間的地址值迴圈取大寫字母,之後分別向兩邊移動
p0--,p1++;
c語言中,我想做一個類似下圖的選擇介面要怎樣做。**在補充問題裡面。 5
在c語言**現下圖的錯誤如何解決(是什麼導致的這樣的錯誤)
8樓:風若遠去何人留
一般是出現了越界訪問, 導致堆上的資料被意外修改導致的。
具體還需要從**分析。
建議單步執行,找到出問題的**。
並看出問題**以及該行操作的地址附近空間有哪些可以訪問。
編寫一個c語言程式,輸出是下圖,注意輸出格式就是那樣,前面向右靠攏,後面向左靠攏。。。謝謝各位大神~~
9樓:匿名使用者
printf("%10d %-2d% -.9f\n", a, b, c);
c的輸出格式預設就是右邊對齊,加上- 控制字元就是左邊對齊
不過為了這麼多位的精確值,最好用double,格式是%lf
10樓:匿名使用者
#include
#include
#include
#include "right_equal.h"
main()
num = pow(num);
number = sow(number);
printf("%3d %d %.9f\n",num,i,number);
}return 0;
}int pow(int num)
float sow(float num)
11樓:匿名使用者
#include "stdafx.h"
#include
int main()
return 0;}
12樓:匿名使用者
#include
#include
void main()}
13樓:匿名使用者
前面向右靠攏,後面向左靠攏。沒看懂
c語言中,下圖三個分別是什麼函式,謝謝?
14樓:昂首都
都是string.h裡面的處理字串的函式假設a,b是兩個字串
strcpy是複製字串,比如strcpy(a,b)就是把b複製給a,b本身不變
strcmp是比較字串「大小」,比如strcmp(a,b)就是比較a,b大小,比較方式是字典序,從左到右開始找第一位不相同的字元,如果a的大於b的,就返回大於0的整數,a的小於b的就返回負數,如果兩個字串完全相等,返回0,常用if((strcmp(a,b))==0)來判斷a和b字串是不是完全相同
strcat是把兩個字串拼起來,比如strcat(a,b)就是以把a和b按a先b後的順序拼起來,最後儲存在a中,而b的值不變
15樓:岔路程式緣
三個都是字串函式
strcpy是拷貝函式
strcmp是比較函式
strcat是連線函式
這個問題怎麼用C語言指標解決呀
酷哥 include include include void main include include int main printf lenght1 d n len1 s p2 while s 0 printf lenght2 d n len2 d p s p1 while s 0 s p2 w...
C語言的問題?誰能解釋一下,C語言問題,這個程式看不明白,誰能解釋一下 謝謝
這個程式寫的不對吧?前面應該是 include include 包含標頭檔案,調入c語言函式庫 後面主函式是 main 主函式main 主函式結束 詳解 程式的功能是從鍵盤輸入一個數x,求x的正弦值,然後輸出結果。在main 之前的兩行稱為預處理命令 詳見後面 預處理命令還有其它幾種,這裡的incl...
c語言問題 這個中括號是什麼意思
小魚服裝品鑑官 該中括號為陣列標識。int a 6 就是定義一個一維陣列,這個陣列名叫做 a 共有6個元素 同理int b 6 6 就是定義一個二維陣列,這個陣列共有6 6個元素。定義之後,就可以引用該陣列的元素,但不能直接用 a 6 a此時包含的元素只有a 0 a 1 a 2 a 3 a 4 a ...