c語言裡複數結構體的定義,關於C語言的題目 用結構體定義一個複數,並實現複數的加法 減法和乘法。

2021-12-25 06:11:01 字數 5659 閱讀 4144

1樓:

1、首先我們開啟dev。

2、我們給這個結構體取個名字叫student。

3、然後我們新增變數。

4、給結構體型別指標p申請堆空間。

5、使用for迴圈給結構體賦值。

6、在通過for迴圈列印輸出,這樣就完成就結構體的基本建立,結尾不要忘了使用free(p);釋放我們申請的堆空間。

2樓:杜爺1號

結構體型別變數的定義與其它型別的變數的定義是一樣的,但由於結構體型別需要針對問題事先自行定義,所以結構體型別變數的定義形式就增加了靈活性,共計有三種形式,分別介紹如下:

1) 先定義結構體型別,再定義結構體型別變數:

struct stu / *定義學生結構體型別* /;struct stu student1,student2;/ * 定義結構體型別變數* /

struct stu student3,student4;

用此結構體型別,可以定義更多的該結構體型別變數。

2 ) 定義結構體型別同時定義結構體型別變數:

struct data

time1,time2;

也可以再定義如下變數:

struct data time3,time4;

用此結構體型別,同樣可以定義更多的該結構體型別變數。

3) 直接定義結構體型別變數:

struct

person1,person2; / *定義該結構體型別變數* /該定義方法由於無法記錄該結構體型別,所以除直接定義外,不能再定義該結構體型別變數。

3樓:匿名使用者

c99標準中有算數的資料型別定義,需要包含complex.h標頭檔案,ansi c沒有,需要自己定義。

4樓:匿名使用者

你可以自己定義一個結構體

struct complex

real記錄實部,image記錄虛部

剛才查了下vc的math.h

#ifndef _complex_definedstruct _complex ;

#if !__stdc__ && !defined (__cplusplus)

/* non-ansi name for compatibility */

#define complex _complex#endif

#define _complex_defined#endif

所以你可以直接用complex

5樓:專為勳

struct p

num[700];

c為+、-、*、/

x為複數的實部,y為複數虛部

num為陣列。用法即num.c num.x num.y

關於c語言的題目:用結構體定義一個複數,並實現複數的加法、減法和乘法。

6樓:你愛我媽呀

#include

struct complex

int re;

int im;

void add(struct complex a, struct complex  b, struct complex *c)

c->re=a.re+b.re;

c->im=a.im+b.im;

void minus(struct complex a, struct complex  b, struct complex *c)

c->re=a.re-b.re;

c->im=a.im-b.im;

int main()

struct complex x,y,s,p;

scanf("%d%d",&x.re,&x.im);

scanf("%d%d",&y.re,&y.im);

add(x,y,&s);

minus(x,y,&p);

7樓:匿名使用者

#include

#include

typedef struct mycomplexmc;mc plus(mc a,mc b)mc sub(mc a,mc b)

mc multi(mc a,mc b)

void show(mc a)

}int main()

按照a+bi這樣的格式輸入就可以了

c語言中怎麼進行復數的定義及運算

8樓:匿名使用者

定義成結構體 實部和虛部分別定義成double,然後在自己定義運算……

如果是c++的話,可以過載+、-、*、\操作符的方式

9樓:匿名使用者

將此變數定義成有符號的,比如signed short int 有符號短整型數

c語言中定義複數的問題

10樓:匿名使用者

#include

#include

#include

using namespace std;

int main()

11樓:透明雀

未包含#include的標頭檔案,定義時改為double_complex

12樓:易尋桃

問題關鍵就在於你這個c檔案找不到那個標頭檔案#include ,導致了變數cx、cy等,以及函式creal、cimag等函式都在編譯的時候被認為是沒有宣告/定義的。所以,估計在complex.h標頭檔案裡面宣告瞭這些變數名和函式,你只要把這個標頭檔案放到你的工程檔案的正確位置就行了。

13樓:鐵打的泥人

你確定你的編譯器支援c99標準?

先把編譯器的錯誤提示也貼出來吧

c語言結構體定義

14樓:

c語言結構體定義:struct為結構體關鍵字,tag為結構體的標誌,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體宣告的變數。

結構體是c語言中聚合資料型別(aggregatedatatype)的一類。結構體可以被宣告為變數、指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的型別,成員一般用名字訪問。

擴充套件資料

1、struct是宣告結構體型別時必須使用的關鍵字,不能省略。「結構體」這個詞是根據英文單詞structure譯出的。

2、structstudent是定義的資料型別的名字,它向編譯系統宣告這是一個「結構體型別」,包括name、num、***、age、score、addr等不同型別的項。

3、structstudent與系統提供的int、char、float、double等標準型別名一樣,都是資料型別,具有同樣的作用,都是用來定義變數的。

15樓:吉祥二進位制

struct在c語言中是一個關鍵字,用於定義結構資料型別。

問題中的兩種定義的區別在於第一種是給student資料型別,重新定義了一個型別別名,而第二種則單純的表示一種叫做student的資料結構型別。兩者的主要區別在於後面直接定義變數時。如下**,則可以直接在結構體後面定義一個zhang_san的結構體變數。

struct student

zhang_san;

而第一種的定義,則會出現錯誤。

typedef struct student

student zhang_san;

擴充套件:「結構」是一種構造資料型別,現在一般叫做使用者自定義資料型別,它是由若干「成員」組成的。 每一個成員可以是一個基本資料型別或者又是一個構造型別。

 結構即是一種「構造」而成的資料型別, 那麼在說明和使用之前必須先定義它,也就是構造它。如同在說明和呼叫函式之前要先定義一樣。

定義一個結構的一般形式為:

struct結構名

;成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為:「型別說明符 成員名;」。成員名的命名應符合識別符號的書寫規定。例如:

struct stu

;在這個結構定義中,結構名為stu,該結構由4個成員組成。 第一個成員為num,整型變數;第二個成員為name,字元型陣列;第三個成員為***,字元型變數;第四個成員為score,浮點型變數。 應注意在括號後的分號是必不可少的。

16樓:苑餘殷運浩

結構體就像陣列一樣,其中的資料是有互相聯絡的,有些情況下定義一些簡單的變數是不能反映出資料之間的內在聯絡,所以我們就把這些資料組合成一個項,而這個項中包含著很多不同的資料項,這就是結構體。

簡單理解下,就是說把一些有內在聯絡的不同變數放在一起封裝成一個整體,這就是結構體。

指標,其實就是一個存放地址的變數,指標可以指向變數,陣列,結構體等資料所在的記憶體單元。

指標就是用來通過地址去找資料的,只要你把該資料的地址給指標,那麼當你用到指向這個資料的指標時就等於在使用該資料。

17樓:

第二個struct student是定義了一個student結構體,這個明白吧。

第一個是用typedef把struct student這個結構體型別名字重新定義為student,也就是說struct student和student表示同一個事物,都是一個型別的識別符號,比如 typedef int zhengshu; 就是你把整型int重新命名為zhengshu,下面定義:int i; 和 zhengshu i; 兩句就是等價的了

18樓:匿名使用者

網頁連結看這個,茅塞頓開

19樓:匿名使用者

您參考這裡

20樓:匿名使用者

#include "stdio.h"

#include "string.h"

#define n 50

struct infoma;

struct infoma funname(struct infoma namet)

struct infoma allname(struct infoma namet)

void putout(struct infoma namet)main()

21樓:巧克力

第一種並沒有什麼意義,typedef為結構體student名定義一個別名,應該與student不一樣,例如:stu,將student重定義為student挺搞笑的。

而第二種只是單純的定義了一個結構體student。也可以在後面加上:typedef student stu。

22樓:傳說中的不死神

答案太亂了,其實你是不明白typedef的用法。

簡單地說:舉例定義無符號整形變數方法有兩種unsigned    int vault_a;

typedef unsigned int      def_uintdef_uint   vault_a;

這兩種方法都可以定義了 vault_a為無符號整形變數。

C語言與C 結構體的區別,C語言和C 語言的區別是什麼?

c語言的結構就是值型別,跟int,char沒有什麼區別 c 的結構跟類已經非常接近了,就是如果不具體說明,預設為共有 比如說這個結構體吧.struct mystruct str 在c 裡可以這樣用 mystruct s1 mystruct 就是一個型別,在c裡只能這樣用其 struct mystru...

C語言問題,定義表示日期的結構體變數(包括年月日),寫函式,返回值為某天是當年的第幾天

include struct date 定義結構體類bai型 void main printf 請輸du 入日期 年zhi 月 日 scanf d dt.y scanf d dt.m scanf d dt.d count dt.d 把dao dt.d 計入總天數 for i 0 i前邊 專的每月的天...

C語言指向這個結構體為什麼要加,C語言,指向結構體成員運算子是什麼意思?

這個 是 取的 data value mutex 的 地址,即 data 中的 value mutex 的地址,因為 c 語言中 比 優先順序高.你哪隻眼睛 看見data指向nmma7660 client 型別結構體變數了?struct nmma7660 data data 這只是定義了一個 指向結...