當前位置:首頁 » 礦機知識 » stuu1礦機

stuu1礦機

發布時間: 2021-05-24 23:32:02

㈠ 請教C++中對象的初始化和構造函數問題:

如果沒有定義拷貝構造函數,則默認將數據成員對應一一復制,使用的值是=後對象的數據成員值。

之所以出現你說的問題是因為你沒有理解構造函數是怎麼運行的。 如果自己定義了構造函數,則使用這個函數,否則使用默認構造函數(與拷貝構造函數一樣將數據成員對應一一復制)。但是你定義的構造函數只有輸出語句,參數也沒有默認值,所有會初始化錯。
//
我剛才實驗了一下,覺得你還是理解的不夠深入。你做了例子,編譯通過了,卻沒有看結果怎樣。
事實上,有幾點需要弄清楚:
一、類不同於c中的結構體,一般不用{ }初始化對象;
MSDN幫助信息:
Compiler Error C2552
'identifier' : non-aggregates cannot be initialized with initializer list
The specified identifier was incorrectly initialized.
An initializer list is needed to initialize the following types:
An array
A class, structure, or union that does not have constructors, private or protected members, base classes, or virtual functions
These types are known as 「aggregates.」
你定義的類有構造函數,不滿足上面說的條件,所有不能用{ }

二、自定義的構造函數內部如果沒有賦值語句的話,即使調用了它,其數據成員x,y也將只會是隨機值(把stu2的定義改為Stu stu2(1,2); 並試著輸出就知道了)
如果把構造函數改為如下:
Stu(int a=0,int b=0);
{
x=a; y=b;
cout<<"stu constructor"<<endl;
}
並使用Stu stu2(1,2); 定義,則stu1的x,y分別為0,0;stu2的x,y分別為1,2

三、我剛才使用Stu stu2(1,2); 定義,為什麼沒有用你說的Stu stu2=Stu(1,2);呢?因為在類名後直接加括弧的方法會定義一個沒有對象名的臨時對象,然後把這個臨時對象賦給了stu2,這並不是通用的初始化方法(但是正確)。最好用通用的方法。

四、關於隱式類型轉換,我查了一下別的書,的確,用=是隱式,用()是顯式。說明如下:
class Stu
{explict Stu(int a);
……
};
加上顯示聲明關鍵字explict,只能進行顯式聲明:Stu stu1(3);
如果不加,將可以這樣隱式聲明:Stu s=3; 這個句子就相當於將3這個整型量轉換成了Stu對象,在某些場合,這樣的轉換是十分危險的,加上explict後將杜絕這種可能性。 相關內容可以查閱「類型轉換函數」。
我參考的書是《C++標准程序庫》華中科技大學。
另外給點小建議,初學語言和熟悉環境(比方VC++)的過程中,細究語法是有必要的,但是學完繼承,派生,虛函數,模板等概念以後,就要著重理解C++面向對象的思想,和用它解決實際問題的思路。

這就是他們的關系,正解

㈡ C語言A01!

首先s[12]保存了12個數字,c[5]裡面則全部是0;
第二個for循環是用於輸出的,可以看出來是輸出 c[1]到c[4]的4個數字。

第一個for運行用來賦值:
當i=0時, s[i]=1;c[s[i]]=c[1]=0; c[1]++ = 1;
當i=1時,s[i]=2;;c[s[i]]=c[2]=0; c[2]++ =1;
........// i從0到3都是把c[0]到c[3]賦值為1;
當i=4時,s[i]=4;c[s[i]]=c[4]=1; c[4]++ =2;
當i=5時,s[i]=3;;c[s[i]]=c[3]=1; c[3]++ =2;
.......//現在應該可以看出規律了,s[12]裡面每出現一個1,則c[1]就加一個; 每出現一個2,則c[2]就加一個。
所以s[12]裡面出現了4個1,3個2,3個3 ,2個4
所以輸出c[1]到c[4]就是 4332

㈢ 編程實現輸入10個學生的姓名、三科成績,自動計算出總分

#include<stdio.h>
#include<string.h>

typedef struct student
{
charname[10];
int num1, num2, num3;
}STU;

void input(STU *stu)
{
scanf("%s", stu->name);
scanf("%d", &(stu->num1));
scanf("%d", &(stu->num2));
scanf("%d", &(stu->num3));
}

void sort(STU *stu1, STU *stu2, STU *stu3)
{
STU *stu;
int stuNum1 = stu1->num1 + stu1->num2 + stu1->num3;
int stuNum2 = stu2->num1 + stu2->num2 + stu2->num3;
int stuNum3 = stu3->num1 + stu3->num2 + stu3->num3;
inti, j;
if(stuNum1 < stuNum2)
{
stu = stu1;
stu1 = stu2;
stu2 = stu;
}
if(stuNum2 < stuNum3)
{
stu = stu2;
stu2 = stu3;
stu3 = stu;
}
if(stuNum1 < stuNum2)
{
stu = stu1;
stu1 = stu2;
stu2 = stu;
}
}

void output(STU *stu1, STU *stu2, STU *stu3)
{
printf("%s\n", stu1->name);
printf("%d\t%d\t%d\n", stu1->num1, stu1->num2, stu1->num3);
printf("%s\n", stu2->name);
printf("%d\t%d\t%d\n", stu2->num1, stu2->num2, stu2->num3);
printf("%s\n", stu3->name);
printf("%d\t%d\t%d\n", stu3->num1, stu3->num2, stu3->num3);
}

int main()
{
STU stu[3];
input(&stu[1]);
input(&stu[2]);
input(&stu[3]);

sort(&stu[1], &stu[2], &stu[3]);

output(&stu[1], &stu[2], &stu[3]);

return 0;
}

㈣ 關於C語言中的typedef struct 的用法問題,編譯器是VC 6.0

你把代碼寫到函數外面是什麼意思?
#include
typedef
struct
student
{
int
age;
float
score;
char
name[20];
}stu;
void
main()
{
stu
stu1;
stu1.age=27;
stu1.score=79.00;
stu1.name="zheng
shuai";
printf("name:%c,age:%d,ang
score:%f",stu1.name,stu1.age,stu1.score);
}

㈤ C語言中 創建鏈表同時 判斷是否重復輸入

可以,只要在錄入學號,檢索鏈表元素中的數據與錄入的是否相同即可。

一下根據情況做一個簡單的示例。

構造鏈表元素:

struct stu
{
char id[20];
char name[20];
char sex;
struct stu *next;
};

typedef struct stu Student ;
#define FALSE -1
#define TRUE 1

構造鏈表:
Student *head=NULL; //頭指針

int InputStu()
{

Student *tmp,*stu1;
Student *tail;
int sign=0;
int sign2=0; //
tmp=(Student *)malloc(sizeof(Student));
if (tmp==NULL)
{
return FALSE; // 申請元素錯誤
}
tmp->next=NULL;

while(sign==0)
{
// 輸入學號,為了簡便,其他內容不輸入了
if(sign2==0)
{
printf("\n請輸入學生的學號:");
}
else
{
printf("\錄入學號重復,重新錄入:");
}

scanf("%s",tmp->id);

stu1=head;
tail=head;
sign2=0;
while(stu1)
{
if (strcmp(stu1->id,tmp->id))
{
stu1=NULL; //輸入的學號已存在,設置stu1=NULL;終止循環,重新輸入
sign2=1;
}
else
{
tail=stu1;
stu1=stu1->next;
}
}

if(sign2==0) //沒有匹配的學號,將tmp插入到鏈表的結尾
{
//tail 指針指向的是鏈表的最後一個元素
if (tail==NULL) //空鏈,還沒有錄入內容
{
head=tmp; //本次錄入的數據為第一個元素
}
else
{
tail->next=tmp;
}
sign=1;
}
}
return TRUE; //錄入元素成功
}

main()
{
int i=0;
while (i<10)
{
InputStu(); //連續錄入10個人
i++;
}
}

㈥ 誰會java數組,循環,冒泡

int tmp[] =stu1[k];
stu1[k] =stu1[k+1];
stu1[k+1] =tmp;
冒泡排序的一個思想就是兩兩對比交換位置
你的代碼,如果k的值大於k+1,就把k和k+1的位置互換,把最大的值放到最後,這樣子循環下了,數組0位置的值就是最小的了,tmp是用來中間臨時保存值的。
int tmp[] =stu1[k];就是把k的值賦給tmp

stu1[k] =stu1[k+1];就是把k+1的值賦給k

stu1[k+1] =tmp;就是把原先k的值賦給k+1

㈦ VB中 自定義數據類型 string變數

VB內部使用的是Unicode編碼,在這種編碼格式下,不管是全形的漢字還是半形的字母、數字或符號,都是按1個字元來算的,如果按位元組來算,則都是2個位元組。也就是說:
"男"這是1個字元(而不是你通常認為的2個字元),"a"這也是1個字元;
"男"這是2個位元組,"a"也是2個位元組(而不是你通常認為的1個位元組)。
dim ch as string*10 這個10是指的字元。所以你的自定義數據類型改成這樣即可:
dim sex as string*1
當然最好還是按樓上說的用Boolean數據類型來定義性別,這樣比較規范。
另外很重要的一點:自定義數據類型不能直接使用的,要先實例化:
dim stu1 as stu
stu1.sex="男"
......

㈧ c語言結構性數組

1、C語言結構體數組的定義:數組是有序的並且具有相同類型的數據的集合。
2、結構數組就是具有相同結構類型的變數集合。假如要用C語言,定義一個班級40個同學的姓名、性別、年齡和住址, 可以做成一個結構數組。
結構數組成員的訪問是以數組元素為結構變數的,它的形式為:
1、結構數組元素—成員名。
2、例如:student[0].name,student[30].age
3、實際上結構數組相當於一個二維構造, 第一維是結構數組元素, 每個元素是一個結構變數, 第二維是結構成員。
注意:結構數組的成員也可以是數組變數。

㈨ 哪種比特幣礦機回本最快

看好U1挖DCR,11T算力,1600W

熱點內容
usdt什麼時候貴 發布:2024-11-16 18:27:35 瀏覽:987
doge電影系列 發布:2024-11-16 17:54:38 瀏覽:62
eth如何挖礦難不難 發布:2024-11-16 17:53:03 瀏覽:760
移動合約卡是怎麼回事 發布:2024-11-16 17:48:24 瀏覽:571
c語言開發區塊鏈 發布:2024-11-16 17:47:16 瀏覽:21
gtx470算力eth 發布:2024-11-16 17:44:53 瀏覽:478
六千台挖礦機要多大廠房 發布:2024-11-16 17:44:39 瀏覽:817
比特幣從16年幾月時候開始漲 發布:2024-11-16 17:38:09 瀏覽:668
騰訊區塊鏈搭建 發布:2024-11-16 17:32:20 瀏覽:761
挖礦需要礦池嗎 發布:2024-11-16 17:27:50 瀏覽:137