當前位置:首頁 » 編程軟體 » cunt編程

cunt編程

發布時間: 2022-03-08 03:49:38

1. 跪求c語言程序設計報告,學生學籍管理系統

試試看
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
#define NULL 0
class student
{
public:
long num;
string name;
string di,dihua,banji;
student *next;
};
int n; //鏈結點的個數
student *head,*stu;
/////////////////////////////////////////////////////////////////////
student *creat(void) //創建動態鏈表 返回以各指向鏈表頭的指針
{ student *head;
student *p1,*p2;
n=0;
p1=p2=new student; //開辟新單元,用P1 P2指向
cout<<"按順序輸入學生的學號,姓名,地址,電話,班級,輸入0 * * * *就停止錄入(*為任意字元)" <<endl;
cin>>p1->num>>p1->name>>p1->di>>p1->dihua>>p1->banji;
head=NULL;
while(p1->num!=0) //循環輸入的作用
{n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=new student; //開辟新單元,
cin>>p1->num>>p1->name>>p1->di>>p1->dihua>>p1->banji; //輸入數據
}
p2->next=NULL; //p2指向最後
return(head);
}

///////////////////////////////////////////作為二進制儲存和讀出二進制文件
void write_read()
{student *p;
student stud[100];
n=0;
for(p=head;p!=NULL;p=p->next)
{ stud[n].di=p->di;
stud[n].dihua=p->dihua;
stud[n].banji=p->banji;
stud[n].name=p->name;
stud[n].num=p->num;
n++;
}

ofstream outfile("student.dat",ios::binary);
if(!outfile)
{ cerr<<"open error...."<<endl;
abort();
}
for(int i=0;i<n;i++)

outfile.write((char*)&stud[i],sizeof(stud[i]));
outfile.close();
ifstream infile("student.dat",ios::binary);
if(!infile)
{ cerr<<"open error...."<<endl;
abort();
}

for(int j=0;j<n;j++)
infile.read((char*)&stud[i],sizeof(stud[i]));
infile.close();
for(int k=0;k<n;k++)
{ cout<<"姓名: "<<stud[k].name<<endl;
cout<<"學號: "<<stud[k].num<<endl;
cout<<"地址 : "<<stud[k].di<<endl;
cout<<"電話: "<<stud[k].dihua<<endl;
cout<<"班級: "<<stud[k].banji<<endl<<endl<<endl;
}

}
///////////////////////////////////////////////////////////////圖形的輸出
void exit()
{

cout<<" ┃ \n"
" ┃ \n"
" ┏━━━━┻━━━━┓ \n"
" ┃ ┃ \n"
" ┏━━━━┻━━━━━━━━━┻━━━━┓\n"
" ┃ ^^^^^謝謝使用^^^^^^^ ┃\n"
" ┃ ┃\n"
" ┃ 偷得浮生半日閑 ┃\n"
" ┃ ┃\n"
" ┃ ┃\n"
" ┗━━━━━━━━━━━━━━━━━━━┛\n";

}

/////////////////////////////////////////////////////////////////////////////////////////////////////
void print(student *head) //輸出鏈表
{student *p;
cout<<" 學生信息表 "<<endl;
p=head;
if(head!=NULL)
cout<<" "<<endl;
cout<<" 學號 姓名 地址 電話 班級 "<<endl;
cout<<" "<<endl;
if(head!=NULL)
do
{ cout<<setw(12)<<p->num
<<setw(14)<<p->name
<<setw(10)<<p->di
<<setw(10)<<p->dihua
<<setw(10)<<p->banji
<<endl;
cout<<" "<<endl;
p=p->next;
}while(p!=NULL);

}
////////////////////////////////////////////////////////////////////////刪除鏈表

student *del(student *head,long num)
{student *p1,*p2;
if(head==NULL)
{cout<<"此為空表"<<endl;return(head);}
p1=head;
while(num!=p1->num && p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(num==p1->num)
{if(p1==head)head=p1->next;
else p2->next=p1->next;
cout<<"刪除"<<num<<endl;
n=n-1;}

else
cout<<"沒有該同學數據!"<<num<<endl;
return(head);
cout<<endl<<endl;
}
///////////////////////////////////////////////////////////////////////////// 鏈表的舔加

student *insert(student *head,student *stud)
{student *p0,*p1,*p2;
p1=head; //P1指向第一個節點
p0=stud; //要插入的節點
if(head==NULL)
{head=p0;p0->next=NULL;} //是P0指向節點作為頭
else
{while((p0->num>p1->num)&&(p1->next!=NULL))
{p2=p1; p1=p1->next;}
if(p0->num<=p1->num)
{if(head==p1)head=p0;
else
p2->next=p0;
p0->next=p1;
}

else
{p1->next=p0;p0->next=NULL;} //差 如節點之後
}
n=n+1; //節點+1
return(head);
cout<<endl<<endl;
}
///////////////////////////////////////////////////////////////////////查找學生
void find()
{student *p;
int a;
cout<<"請輸入想要找的學生的學號"<<endl;
cin>>a;
for(p=head;p!=NULL;p=p->next)
{ if(a==p->num)
{ cout<<" "<<endl;
cout<<" 學號 姓名 地址 地話 班級 "<<endl;
cout<<" "<<endl;
cout<<setw(12)<<p->num
<<setw(14)<<p->name
<<setw(10)<<p->di
<<setw(10)<<p->dihua
<<setw(10)<<p->banji
<<endl;
cout<<" "<<endl;
break;
}
else
continue;
}
}
///////////////////////////////////////////////////////////////////////////////刪除和添加的鏈表的多次執行的實現
void list()
{ int a;
long del_num;
student *creat(void);//輸入學生數據
student *cunt_put(student *);
student *del(student *,long);
student *insert(student *,student *);
void print(student *);
cout<<" "<<endl<<endl<<endl;
head=creat();
print(head); //輸出全部結點
cout<<"如果要刪除學生資料請輸入1,如果需要添加請輸入2"<<endl;
cin>>a;
if(a==1)
{ cout<<"輸入要刪除學號"<<endl;
cin>>del_num;
while(del_num!=0 )
{ head=del(head,del_num);
print(head); //調用輸出函數
cout<<"是否繼續刪除:是(輸入學號),不是(輸入0)"<<endl;
cin>>del_num;
}

}

cout<<",往下執行就按任意數字"<<endl;
cin>>a;
if (a==2) //操作選擇
{ cout<<"輸入要添加的就輸入學號"<<endl;
stu=new student; //開創新的空間
cin>>stu->num>>stu->name>>stu->di>>stu->dihua>>stu->banji; //輸入數據
while(stu->num!=0) //可以循環刪除,刪除多個
{ head=insert(head,stu); //調用添加函數
print(head); //調用輸出函數
cout<<"如果需要添加請輸入學號,無需添加輸入0 * * * *就停止錄入(*為任意字元)"<<endl;
stu=new student;
cin>>stu->num>>stu->name>>stu->di>>stu->dihua>>stu->banji;
}
}
cout<<endl<<endl;
}

/////////////////////////////////////////////////////////////////////////調用各個函數
void swich()
{ int a;
list();//刪除和添加調用

cout<<"退出軟體輸入9 直接查看學生資料輸入10"<<endl;
cin>>a;
if(a==9)
exit();
if(a=10)
{ for(int u=0;;u++)
{
cout<<" 0按學號查某個學生的數據 1查看成績表 3退出系統且讀取二進制文件 "<<endl;
int t;
cin>>t;

if(t==1)
{ print(head);continue;
}
if(t==3)
{ exit();
break;
}
if(t==0)
{ find();continue;
}

}
}
cout<<"讀取二進制文件如下"<<endl<<endl<<endl;
write_read();
}
////////////////////////////////////////////////////////密碼實現
void mima()
{ int n,m=1988825;
for(int j=0;;j++)
{
cout<<"這是我的地盤,請輸入密碼:"<<endl;
cin>>n;

if(m==n)
{ cout<<"恭喜你猜對了!!!"<<endl;
swich();
break;
}
else
{
cout<<"內有怪物,生人勿進!"<<endl;
continue;
}
}
}
//////////////////////////////////////////////////主函數
int main()
{ mima();
return 0;
}

2. 「silly cunt」是什麼意思

silly cunt:愚蠢的女人

3. 匯編語言編寫程序代碼

家裡電腦有這樣的代碼但是你中午之前要肯定不行了
我這里有給定數字的計算正負個數的。你添加個手動輸入數值的功能就可以實現你的要求
data segment
MSG DB 20,-3,0,-59,60,-46,-7 ;這里重新定義長度
cunt1 equ $-msg;後面需要重新賦值
cunt2 db 0 ;正數置初值
cunt3 db 0 ;0數置初值
cunt4 db 0 ;負數置初值
buffer db 10h p(0)
data ends
code segment
assume ds:data,cs:code
mov ax,data
mov ds,ax
mov ax,0
mov si,0;下一句就執行鍵盤輸入數據,計算輸入的字元個數
mov cx,cunt1;置循環值,輸入字元的總數
lp: mov al,msg[si]
test al,ffh;測試是否為0
jz lk1
test al,10000000b;測試符號位
jz lk2
inc cunt4;負數計數加一
lk1: inc cunt3;0數計數加一
lk2: inc cunt2;正數計數加一
inc si;指向下一個數據
loop lp;後面添加顯示的代碼就可以了
code ends
end start

4. 求c++編程題,難度適中的。。不要簡單的,最好趣味性強一些

郵箱

5. 想找一些C++編程例題

一:選擇題
1. 下面函數的功能是:( )
int fun(char *x)
{
char *y=x;
while(*y++){};
return y-x-1;
}
a. 求字元串的長度
b. 求字元串存放位置
c. 比較兩個字元串的大小
d. 將字元串x連接到字元串y後面
2. 若有以下說明和語句,且0<i<10,則( )是對數組元素的錯誤引用。
int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
a. *(a+i)
b. a[p-a]
c. p+i
d. *(&a[i])
3. 下面程序的輸出是:( )
#include <stdio.h>
void main( )
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d", *(p+2));
}
a. 3
b. 4
c. 1
d. 2
4. 若有以下定義和語句,且0<i<10,則對數組元素地址的正確表示是:( )
int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
a. &(a+1)
b. a++
c. *p
d. &p[i]
5.已知:int a,x=1;則下面正確的賦值語句是:( )
a. a=(a[1]+a[2])/2;
b. a=(a[1]+a[2])/2;
c. a=x+2;
d. a="good";
6.已知:int a[]={1,2,3,4,5,6},*p=a;下面表達式中其值為5的是:( )
a.p+=3;*(p++);
b.p+=5;*p++ ;
c.p+=4;*++p;
d.p+=4;++*p;
7. 若有以下語句,且0<=k<6,則正確表示數組元素地址的語句是( )
int x[]={1,9,10,7,32,4},*ptr=x,k=1;
a.x++
b.&ptr
c.&ptr[k]
d.&(x+1)
8.若有說明:int i,j=7,*p;p=&i;則與i=j等價的語句是( )
a.i=*p;
b.*p=*&j;
c.i=&j
d.i=**p;
9. 設p1和p2是指向同一個int型一維數組的指針變數,k為int型變數,則不能正確執行的語句是( )
a.k=*p1+*p2;
b.p2=k;
c.p1=p2;
d.k=*p1*(*p2);
10. 設有以下函數定義,則該函數返回的值是( )
int * fun(int a)
{
int *t,n;
n=a;t=&n;
return t;
}
a.一個不可用的存儲單元地址值
b.一個可用的存儲單元地址值
c.n中的值
d.形參a中的值

二:填空題
1、 給出以下程序的輸出結果是
#include<stdio.h>
void main()
{
int *v,b;
v=&b; b=100; *v+=b;
printf("%d\n",b);
}
2、 說明語句"int (* p)();"的含義是
3、 已知函數說明語句:void *fun();則它的含義是
4、 已知:int i;char *s="a\045+045\'b";執行語句"fot(i=0;*s++;i++);"之後,變數i的結果是
5、下面的程序是求兩個整數之和,並通過形參傳回結果。
int add(intx,int y, z)
{ =x+y;}
6、給出以下程序的輸出結果是
void fun(int *x)
{ printf("%d\n",++*x)'; }
main()
{
int a=25;
fun(&a);
}
7、給出以下程序運行的結果
#include <stdio.h>
void main( )
{
int a[ ]={1,2,3,4,5};
int x, y, *p;
p=&a[0];
x=*(p+2);
y=*(p+4);
printf("*p=%d,x=%d,y=%d\n",*p,x,y);
return;
}
8、給出以下程序運行的結果
#include<iostream.h>
void callbyval(int a,int b,int c)
{
a=3;b=2;c=1;
}
void callbypointer(int* a,int* b,int* c)
{
*a=3;*b=2;*c=1;
}
void callbyreference(int& a,int& b,int& c)
{
a=1;b=2;c=3;
}
void main()
{
int a=1,b=2,c=3;
int& a1=a;
int& b1=a;
int& c1=a;
callbyval(a,b,c);
cout<<a<<b<<c<<endl;
callbypointer(&a,&b,&c);
cout<<a<<b<<c<<endl;
callbyreference(a1,b1,c1);
cout<<a<<b<<c<<endl;
}
9、給出以下程序運行的結果
#include<iostream.h>
void ast(int x,int y,int *cp,int *dp)
{
*cp=x*y;
*dp=x%y;
}
void main()
{
int a,b,c,d;
a=2; b=3;
ast(a,b,&c,&d);
cout<<c<<d<<endl;
}
10、給出以下程序運行的結果
#include <stdio.h>
void main( )
{
int a=10,b=0,*pa, *pb;
pa=&a; pb=&b;
printf("%d,%d\n",a,b);
printf("%d,%d\n",*pa,*pb);
a=20; b=30;
*pa=a++; *pb=b++;
printf("%d,%d\n",a,b);
printf("%d,%d\n",*pa,*pb);
(*pa)++;
(*pb)++;
printf("%d,%d\n",a,b);
printf("%d,%d\n",*pa,*pb);
}

三:簡答和編程題
1. 判斷執行下面的語句後,ab的值變為多少
int *var, ab;
ab=100;
var=&ab;
ab=*var+10;

2.已知指針p的指向下圖所示,則表達式*--p的值是多少?(這里,a[0],a[1],a[2]……僅作為連續存儲單元的代號,a[0]在低地址,a[1]在高地址)。

3. 有定義:double var;那麼,
a) 使指針p可以指向double型變數的定義語句是什麼?
b) 使指針p指向變數var的賦值語句是什麼?
c) 通過指針p給變數var讀入數據的scanf函數調用語句是什麼?

4.寫一個函數,求一個字元串的長度,在main函數中輸入字元串,並輸出其長度。

5.編程實現:從鍵盤輸入一任意字元串,然後,輸入所要查找字元。存在則返回它第一次在字元串中出現的位置;否則,輸出"在字元串中查找不到!" 。並實現對同一字元串,能連續輸入所要查找的字元。

6.編程實現:從字元串中刪除子字元串。從鍵盤輸入一字元串,然後,輸入要刪除的子字元串。最後輸出刪除子串後的新字元串。

一:選擇題:

1.A
2.C
3.A
4.D
5.C
6.A
7.C
8.B
9.B
10.A
二:填空題
1. 200
2. p是一個指向函數的指針,該函數的返回值是一個整型
3. 函數fun的返回值是一個通用型的指針
4. 8
由於for語句就是求字元串的長度,所以可以知道i的結果是8
5. (1)int * (2)*z
6. 26
7. *p=1 x=3 y=5
8. 123
321
321
9. 6 2
10. 10,0
10,0
21,31
21,31
22,32
22,32
三、問答和編程題

1. 本例定義了兩個變數,int型的變數ab和指向int型的指針變數var;語句var=&ab;是將ab的地址賦給了var,在下一條語句中,*var 表示var所指單元的內容,即100。然後,將*var+10賦給了變數ab;那麼,這時ab的值應該是110。
2.根據運算符的優先順序,表達式*--p=*(--p)。所以,先執行--p操作,使指針p向低地址方向移動一個存儲單元,指向a[1]。然後用運算符"*"取得該地址所存儲的數據,即20。
3.(1)要求把p定義成指向double型的指針變數即可,所以定義語句是:double *p;
(2)要使p指向變數var,即將var的地址賦給指針p,賦值語句為:p=&var;
(3)用scanf函數把讀入的數據賦給變數var的語句是:scanf("%lf",&var);由於(2)中已將var的地址賦給了p,所以該語句等價於scanf("%lf",p);
4.程序為:
#include <stdio.h>
int length(char* a);
void main( )
{
int len;
char str[20];
printf("請輸入一個字元串:");
scanf("%s",str);
len=length(str);
printf("字元串長度為%d",len);
return;
}
int length(char* a)/*求字元串長度函數*/
{
char *p;
p=a;
int n;
n=0;

while(*p!='\0')
{
n++;
p++;
}
return(n);
}
5.程序為:
#include<iostream.h>
char *strchr( char *string,int letter)
{
while((*string!=letter)&&(*string))
string++;
return string;
}
void main()
{
int tt=1;
while(tt){
char title[64];
cout<<"請輸入一字元串:";
cin>>title;
char *p;
cout<<"請輸入你想查找的字元: ";
char ch;
cin>>ch;
p=strchr(title,ch);
if(*p)
cout<<"所查字元在字元串中第一次出現的位置為: "<<p-title<<endl;
else
cout<<"在字元串中沒有所查字元!"<<endl;
cout<<"do u cunteue!1--counte,0--exit"<<endl;
cin>>tt;
}
}

6.程序為:
#include<string.h>
#include<iostream.h>
char* strstr_rep(char *source,char *old)
{
int i,j,k,loc=-1;
for(i=0;source[i]&&(loc==-1);i++)
for(j=i,k=0;source[j]==old[k];j++,k++)
if(!old[k+1])
loc=i;
if(loc!=-1)
{
for(k=0;old[k];k++);
for(j=loc,i=loc+k;source[i];j++,i++)
source[j]=source[i];
source[i]=NULL;
}
return(source);
}
void main()
{
char a[50];
cout<<"請輸入一字元串:";
cin>>a;
char b[30];
cout<<"請輸入上字元串的一個子串:";
cin>>b;
cout<<strstr_rep(a,b)<<endl;
}

6. 匯編程序,沒看到過程,誰能給寫一下注釋

我的匯編也只學了一點點,你這個問題我無法給出答案,但我知道你的問題出在哪裡,你沒有圖形化思維,匯編的每一步都需要計算的,都可以建立圖形的,即你可以通過debug等操作,也可以根據代碼在腦中形成圖形,看到代碼的話,直接換成圖像,一目瞭然。
我敢肯定,許多人學匯編包括其它編程之所以學不會,不是學的太慢了,恰恰是學的太慢了。學匯編,你應該看王爽的《匯編語言》第三版了,這本書I一定給給你極大的啟發的。
學匯編的關鍵是建立圖形化思維,看到代碼直接換成圖形,就很簡單了。

7. 用c++實現隨機生成大素數

以下的程序在borland c++ complier 5.5下通過,
但在visual c++ 6.0下無法通過,原因是不支持string類的操作
各位可以自己改一改

效果:
PⅢ850
128M ram內存
算到1億用時:48S
算到10億用時:580S
算到100億估計用時:6000S
這仍然太慢,需要改進。

要想算到100億,unsigned int(max=42億)
是不行的,需要改進記數格式。

不管程序本身怎麼樣,這畢竟是我寫的第一個c++程序。
讓各位見笑了

大家可以用c自己寫一個,效果比這個要好。

本來好好的縮進格式,被tencent的傻cgi一過濾,就面目全非了。
大家如果想看好的縮進格式的程序和圖表,可以給我留言,把你的郵箱地址給我。
或直接點"回復"->"引用"->"全部"

然後把文字輸入框里的文本粘貼到寫字板(不是記事本)里,把">"全部替換掉
就可以了
//begin of Primedat.h
#include<iostream.h>
#include<stdlib.h>
class Primedat
{
public:
int onedat; // one of the data
Primedat(int maxprime);
~Primedat();
void initdat(void); //設置指針位置
void marknonprime(void); //標記當前指針所指數據為非素數
void showprime(void); //顯示當前指針所指數據
private:
int arrsize; //win98 一個內存頁4kB
unsigned short **data; //指針數組,記錄各數據數組的首地址
int arrnumlimit; //一個數組所能標記的素數上限
int datID; //內存塊索引
int arrID; //數組中數據索引
int bitblockID; //數據內位塊索引
int bitID; //位塊內的位索引
int pointercunt; //實際申請到的指針數組長度 釋放內存標記
int datacunt; //實際申請到的數組個數釋放內存標記
short scrwd; //輸出數據占屏幕寬度
unsigned short andortable[16];//標記各個數據位的數據表
unsigned short tmp; //取出的數據緩存
short allocerr; //內存分配錯誤次數
} ; //原來的時候,這里少了個';'所以出錯
//end of Primedat.h

//Begin of Primedat.cpp
#include"Primedat.h"
#include<iostream.h>
Primedat::Primedat(int maxprime)
{
allocerr=0;
arrsize=4096; //win98一個內存頁4kb,減少內存碎片
arrnumlimit=arrsize*40;
int i=0;
for(i=0;i<16;i++)
{
andortable[i]=1<<i;//此數據表用來屏蔽某些位或將某些位置1
}
int k=0;
int arrnum;
arrnum=maxprime/arrnumlimit+( ((maxprime%arrnumlimit)==0) ? 0 : 1);
cout<<"arrnum: "<<arrnum<<endl;
data=new unsigned short *[arrnum];//建立一個指針數組
if(data==NULL)
{
cout<<"存放指針的模塊內存分配錯誤,程序不能完成指定的操作,任務被放棄"<<endl;
exit(1);
}
pointercunt=arrnum;
getmem:
try
{
for(;datacunt<arrnum;datacunt++)
{
*(data+datacunt)=new unsigned short[arrsize];
if( (*(data+datacunt)) == NULL)
{
throw datacunt;
}
}
}
catch(int datacunt) // 處理內存分配錯誤
{
allocerr++;
if(allocerr<3)
{
cout<<"在分配第"<<datacunt+1<<"塊內存時失敗,系統正在嘗試重新分配"<<endl;
goto getmem;
}
else
{
cout<<"內存分配錯誤已達4次,可能操作系統內存不足。"<<endl
<<"程序不能完成指定的操作,任務被迫放棄"<<endl;
exit(1);
}
}
for(i=0;i<pointercunt;i++)
for(k=0;k<arrsize;k++)
{
*( *(data+i)+k )=0; //初始化數據塊
}
cout<<"^_^ 內存初始化完成,primedat類的對象構造成功"<<endl;
}

Primedat::~Primedat() //釋放內存
{
for(int i=0;i<pointercunt;i++)
{
delete []( *(data+i) );
}
delete []data;
}//finished

void Primedat::initdat(void)
{
datID=onedat/arrnumlimit;
arrID=(onedat%arrnumlimit)/40;
bitblockID=(onedat%40)/10;
switch(onedat%10)
{
case 1:bitID=0;
break;
case 3:bitID=1;
break;
case 7:bitID=2;
break;
case 9:bitID=3;
break;
default:
cout<<"函數異常調用:"<<endl
<<"Prmiedat::initdat(void)"<<endl
<<"參數非法,int onedat="<<onedat<<"程序被迫中止"<<endl;
exit(1);//非法調用時退出
}
tmp=*(*(data+datID)+arrID);
} //end of function

void Primedat::marknonprime(void)
{
*( *(data+datID) +arrID) |= andortable[bitblockID*4+bitID];//將一個非素數所在的位置1
}//end of function

void Primedat::showprime(void)
{ unsigned short bitsig[4]={1,3,7,9};
if( (tmp&andortable[bitblockID*4+bitID]) ==0)
{
cout<<onedat<<" ";//輸出一個素數
scrwd++;
if(scrwd==8)
{
scrwd=0;
cout<<endl;//達到8個數後換行
}
}
}//end of function

//end of Primedat.cpp
#include<math.h>
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include"Primedat.cpp"
#include<time.h>
int main(void)
{
string cmd; //用戶輸入的命令
const int goal=100000000; //計算目標1億
int basecunt=3; //外層計數器
int baseflag=3; //外層加標志
int numcunt; //內層計數器
int numflag; //內層加標志
clock_t start ,end; //計算開始和終止時間
start=clock(); //開始計時
Primedat *tenb;
tenb =new Primedat(goal);
const int basegoal=(int)sqrt(goal); //只需計算到goal^(1/2)
int multmp; //中間乘結果
while(basecunt<basegoal) //開始
{
numcunt=basecunt;
numflag=baseflag;
while( (multmp=basecunt*numcunt) <goal)
{
tenb->onedat=multmp;
tenb->initdat();
tenb->marknonprime();
numflag++;
if(numflag==4)//1,3,7,9
{
numcunt+=4;
numflag=0;
}
else
{
numcunt+=2;
}
}
baseflag++;
if(baseflag==4)
{
basecunt+=4;
baseflag=0;
}
else
{
basecunt+=2;
}
}

end=clock();
cout<<"time: "<<(double)(end-start)/CLOCKS_PER_SEC<<endl;
//生成數據完畢

cout<<"由於生成數據過多,逐一顯示將耗費大量時間,"<<endl
<<"輸入\"show\"顯示,其它任意字元退出"<<endl;
cin>>cmd;
if(cmd=="show")
{
baseflag=0;
for(basecunt=7;basecunt<goal;)
{
tenb->onedat=basecunt;
tenb-> initdat();
tenb->showprime();
baseflag++;
if(baseflag==4)
{
basecunt+=4;
baseflag=0;
}
else
{
basecunt+=2;
}
}

}
delete tenb;
return 0;
}//end of main

鏈接里是全部詳細編程思路與過程
參考資料:http://www.graphics.net.cn/bbs/c_or_cpp/0178/315.asp

8. 編寫程序,一個字元串S以"$"字元結束,統計大寫字母A出現的次數.

data segment
msg db 'ASFHLSDHFAH$'
count1 equ $-msg
count2 db 0 ;計數置初值
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,count1;置循環值
lp: mov al,msg[si]
cmp al,'$';測試是否為$
jz exit
cmp al,41h;測試是否為A
jnz lk1
inc count2
lk1:
inc si;指向下一個數據
loop lp
exit:
mov ax,4c00h
int 21h
code ends
end start

9. 關於6174問題的C語言編程

以下程序不僅可以計算出需要次數最多的四個數字,而且還有個附加屬性,就是算出需要的最多次數。
int sub(int cha)
{
int m[4];
int i=0,j,k;
int max,min,cunt=1;
for(cunt=0;;cunt++)
{
if(cha!=6174)
{
m[0]=cha/1000;
m[1]=(cha%1000)/100;
m[2]=(cha%100)/10;
m[3]=cha%10;

for(i=0;i<4;i++)
{
for(j=i+1;j<4;j++)
{
if(m[i]<m[j])
{
k=m[i];
m[i]=m[j];
m[j]=k;
}
}
}
max=m[0]*1000+m[1]*100+m[2]*10+m[3];
min=m[3]*1000+m[2]*100+m[1]*10+m[0];
cha=max-min;
if(cha==0)
return 0;
}
else
return cunt;
}
}

main()
{

int i=1;
int s=0,t=0;
for(i=1;i<=9999;i++)
{
if(s<sub(i))
{
s=sub(i);
t=i;
}
}
printf("%d %d",s,t);
getch();
}
註:其中,S表示最多的次數,T表示需要次數最多的四個數字。這里的數字是以數值的形式表現的。例如,T=14,表示的四個數字就是0、0、1、4。
上述程序沒有做任何注釋,如有不理解,可留言。

熱點內容
存儲器部件教學實驗 發布:2025-01-21 09:14:06 瀏覽:178
php安裝memcached擴展 發布:2025-01-21 09:07:06 瀏覽:545
手機緩存視頻到電腦上 發布:2025-01-21 09:07:02 瀏覽:977
如果知道伺服器ip有什麼風險 發布:2025-01-21 09:06:58 瀏覽:524
在壓縮曲線 發布:2025-01-21 09:05:31 瀏覽:909
華山演算法 發布:2025-01-21 08:44:48 瀏覽:366
如何在微信上再設置一個密碼 發布:2025-01-21 08:44:39 瀏覽:731
浙江伺服器搭建雲主機 發布:2025-01-21 08:41:38 瀏覽:452
光遇和王者榮耀哪個需要的配置高 發布:2025-01-21 08:40:28 瀏覽:13
如何取消安卓微信表情 發布:2025-01-21 08:08:39 瀏覽:556