『壹』 c++入門代碼是多少
c++入門代碼是,include iostreamusing namespace stdi,nt main(int number1 0;int number2 0cout please input two number endl。
cin number1 numbe2cout number1 + number2 = number1 + number_2cout endl,return 0,程序運行結果,其中圈起來的就是程序輸入兩個數,然後這兩個數之和產生的結果。
c++入門代碼介紹
零基礎學廳悄習C++語言,並不困難,需要選擇對一本好書,我記得有本很厚的書不錯C++基礎,做好學習筆記旅伏純。學習過程中,對照書本,找准知識點,從閱讀到拆咐理解到運用,需要花費不少功夫。
可以做個學習筆記,在CsDN網站做個博客,記錄自己的學習經歷,抒發自己的見解,同時起到一定的督促作用,我以前也試過,效果很好。
真正的學會是靈活運用,舉一反三,可以嘗試做一下項目練習,自己試著去寫幾個程序,網上有很多這樣的常式。語言只是一種工具,真正令人費解的是演算法。
『貳』 求JAVA冒泡排序法的代碼
你好!很高興能幫到你。
由於你剛學Java,所以一些編程規范是需要注意的,而我提供給你的答案看起來雖然有點復雜,不過採用了面向對象的編程思想,盡量做到低耦合高內聚,同時冒泡演算法也做了升級,為冒泡的高級快速排序演算法,不過為了對比,也保存了傳統的冒泡演算法。
需要講解一下,演算法本身不難,難在如何做到編程規范、以及方便修改、易於修改、使得程序靈活、低耦合高內聚。
演算法部分請看Bubble類,裡面有兩種演算法,有注釋。
主類為TestBubble,主要用於調用Bubble對象運行演算法、StuInfo對象提供學生作者信息、Info對象提供運行過程中提示信息。
運行結果如下(Bubble類為核心演算法類):
************************************
run:
請輸入您將要輸入整數的個數:
10
請輸入一串數字進行冒泡排序,注意:每次只輸入一個,輸完則回車
1:10
2:23
3:11
4:56
5:45
6:26
7:59
8:28
9:84
10:79
初始絕慶猜序列的數組為:
10 23 11 56 45 26 59 28 84 79
學號:200815009* 班級:08軟體3班 姓名:葉科良
排序好的數組為:
10 11 23 26 28 45 56 59 79 84
源代碼如下:差激
***************************************************
package testBubble;
import java.io.Reader;
import java.util.Scanner;
/**
*
* @author yekeliang
*/
public class TestBubble {
private CommandLineBubbleRunner commandLineBubbleRunner;
private int arraySize;
private int[] intArray;
private StuInfo stuInfo;
private Info info;
/**
* 測試方法
* @param args
*/
public static void main(String[] args) {
TestBubble test = new TestBubble();
}
/**
* 構造方法
* 調用初始化學生數據、接收命令行整數、展示結果3個成員方法
*/
public TestBubble() {
initMemb();
initData();
runBubble();
showResult(this.getIntArray());
}
/**
* 初始化學生數據
*/
private void initData() {
stuInfo.setStuNum("200815009*");
stuInfo.setStuClass("並型08軟體3班");
stuInfo.setStuName("葉科良");
info.setInputIntNumInfo("請輸入您將要輸入整數的個數:");
info.setInputIntInfo("請輸入一串數字進行冒泡排序,注意:每次只輸入一個,輸完則回車");
info.setShowInputInfo("初始序列的數組為:");
info.setShowResultInfo("排序好的數組為:");
info.setInputErrorInfo("對不起,輸入有誤!請輸入整數.");
}
/**
* 接收命令行整數,使用冒泡演算法
*/
private void runBubble() {
try{
System.out.println(info.getInputIntNumInfo());
setArraySize(getCommandLineBubbleRunner().getArraySize());
System.out.println(info.getInputIntInfo());
setIntArray(getCommandLineBubbleRunner().getAcceptAsIntArray(getArraySize()));
System.out.println(info.getShowInputInfo());
getCommandLineBubbleRunner().showAcceptAsIntArray(getIntArray());
Bubble.quick(getIntArray());
} catch(java.util.InputMismatchException e) {
System.out.println(info.getInputErrorInfo());
}
}
/**
* 展示結果
*/
private void showResult(int intArray[]) {
System.out.println("\n" + stuInfo.toString());
System.out.println(info.getShowResultInfo());
for (int i = 0; i < intArray.length; i++) {
System.out.print(intArray[i] + " ");
}
}
private void initMemb() {
stuInfo = new StuInfo();
info = new Info();
commandLineBubbleRunner = new CommandLineBubbleRunner();
}
public CommandLineBubbleRunner getCommandLineBubbleRunner() {
return commandLineBubbleRunner;
}
public void setCommandLineBubbleRunner(CommandLineBubbleRunner commandLineBubbleRunner) {
this.commandLineBubbleRunner = commandLineBubbleRunner;
}
public int getArraySize() {
return arraySize;
}
public void setArraySize(int arraySize) {
this.arraySize = arraySize;
}
public int[] getIntArray() {
return intArray;
}
public void setIntArray(int[] intArray) {
this.intArray = intArray;
}
private void getStuInfo() {}
}
/**
*
* @author 葉科良
*/
class CommandLineBubbleRunner {
public int num;//輸入整數個數
/**
* 從命令行中讀取需要輸入的整數個數
* @return 需要輸入的整數個數
*/
public int getArraySize() {
Scanner reader1 = new Scanner(System.in);
num = reader1.nextInt();
return num;
}
/**
* 指定數組大小,從命令行接收整數
* @param arraySize 數組大小
* @return 原始整數數組
*/
public int[] getAcceptAsIntArray(int arraySize) {
int[] acceptArray = new int[arraySize];
Scanner reader = new Scanner(System.in);
for (int i = 0; i < getNum(); i++) {
System.out.print((i + 1) + ":");
acceptArray[i] = reader.nextInt();
}
return acceptArray;
}
/**
* 列印原始輸入數據
* @param intArray
*/
public void showAcceptAsIntArray(int[] intArray){
for (int i = 0; i < getNum(); i++) {
System.out.print(intArray[i] + " ");
}
}
/**
* 取得數組大小
* @return
*/
public int getNum() {
return num;
}
}
class Bubble {
/**
* 給定一個數組,使用冒泡演算法進行排序
* @param acceptArray 給定的一個數組
* @return 排序好的數組
*/
public static int[] getResultAsIntArray(int[] acceptArray) {
int i, temp;
for (i = 0; i < (acceptArray.length - 1); i++) {//兩兩進行比較,符合條件的進行交換
if (acceptArray[i] > acceptArray[i + 1]) {
temp = acceptArray[i];
acceptArray[i] = acceptArray[i + 1];
acceptArray[i + 1] = temp;
}
}
return acceptArray;
}
/**
* 快速冒泡排序演算法
* @param r 輸入的整數數組
* @param first 數組第一個下標
* @param end 數組最後一個下標
* @return 排好序的整數數組
*/
public static int partition(int[] r, int first, int end) {
int i, j;
i = first;
j = end;
while (i < j) {
while (i < j && r[i] <= r[j]) {
j--;
}
if (i < j) {
int temp;
temp = r[i];
r[i] = r[j];
r[j] = temp;
}
}
return i;
}
public static void quick(int[] r, int first, int end) { //利用遞歸反復劃分
if (first < end) {
int pivot = partition(r, first, end); //調用劃分函數
quick(r, first, pivot - 1);
quick(r, pivot + 1, end);
}
}
public static int[] quick(int[] r){
quick(r,0,r.length-1);
return r;
}
}
class Info {
private String inputIntNumInfo;//提示用戶輸入整數個數的消息語句
private String inputIntInfo;//提示用戶輸入整數的消息語句
private String showInputInfo;//提示顯示用戶輸入整數的消息語句
private String inputErrorInfo;//提示用戶輸入有誤消息語句
private String showResultInfo;//提示顯示排序結果
public String getInputIntNumInfo() {
return inputIntNumInfo;
}
public void setInputIntNumInfo(String inputIntNumInfo) {
this.inputIntNumInfo = inputIntNumInfo;
}
public String getInputIntInfo() {
return inputIntInfo;
}
public void setInputIntInfo(String inputIntInfo) {
this.inputIntInfo = inputIntInfo;
}
public String getShowInputInfo() {
return showInputInfo;
}
public void setShowInputInfo(String showInputInfo) {
this.showInputInfo = showInputInfo;
}
public String getInputErrorInfo() {
return inputErrorInfo;
}
public void setInputErrorInfo(String inputErrorInfo) {
this.inputErrorInfo = inputErrorInfo;
}
public String getShowResultInfo() {
return showResultInfo;
}
public void setShowResultInfo(String showResultInfo) {
this.showResultInfo = showResultInfo;
}
}
class StuInfo {
private String stuNum;//學生學號
private String stuName;//學生姓名
private String stuClass;//學生班級
@Override
public String toString() {
return "學號:" + getStuNum() + " 班級:" + getStuClass() + " 姓名:" + getStuName();
}
public String getStuNum() {
return stuNum;
}
public void setStuNum(String stuNum) {
this.stuNum = stuNum;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
}
『叄』 高分求助!急!用鏈表或數組實現大整數的加減乘運算代碼,包含負數運算,注釋盡量多一點!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define Max 1000000
void BigNumsAdd(char *numa,char *numb);
void BigNumsSub(char *numa,char *numb);
void BigNumsMul(char *numa,char *numb);
int check(char *s);
clock_t start,end;
void inscanf(char c,char *&n1,char *&n2){
char t;
int i=0;
while(1){
t=getchar();
if(t==c && !(c=='埋納-'&&i==0)) break;
n1[i++]=t;
}
n1[i]=0;
i=0;
while(1){
t=getchar();
if(t==10) break;
n2[i++]=t;
}
n2[i]=0;
putchar('=');
}
void switcher(char *n,int *num,int &weishu) //將字元數枝嫌組轉換為整形數組
{ //整形數組的低位至高位分別
int i; //儲存數據的個位到高位數字
for(i=0;i<Max+1;i++) num[i]=0;
for(i=1;i<weishu;i++)
num[i]=n[weishu-i]-'0';
if(n[0]=='+' || n[0]=='-')
{
weishu--;
num[0]=n[0];
}
else num[weishu]=n[0]-'0';
}
void BigNumsAdd(char *numa,char *numb) //大整數的相加,其中兩個參數分別為兩個待輸入的字元串
{
int *Num1=NULL,*Num2=NULL,*answer=NULL;
int weishu1,weishu2,wei;
int i,s=0;
if(numa[0]=='-' && numb[0]!='-') //兩個數一正一負猛液手的時候,改變符號後轉跳到相減
{
numa[0]='+';
BigNumsSub(numb,numa);
return;
}
if(numb[0]=='-' && numa[0]!='-')
{
numb[0]='+';
BigNumsSub(numa,numb);
return;
}
weishu1=strlen(numa);
Num1=(int*)malloc((Max+1)*sizeof(int));
weishu2=strlen(numb);
Num2=(int*)malloc((Max+1)*sizeof(int));
switcher(numa,Num1,weishu1);
switcher(numb,Num2,weishu2);
wei=(weishu1>weishu2)?weishu1:weishu2;
answer=(int*)malloc((wei+2)*sizeof(int)); //(wei+2)??防止相加後位數增1
for(i=0;i<wei+2;i++) answer[i]=0;
for(i=1;i<=wei;i++)
{
answer[i]+=(Num1[i]+Num2[i]);
if(answer[i]>=10) //逢十進一
{
answer[i]-=10;
answer[i+1]++;
}
}
if(numa[0]=='-' || numb[0]=='-') //注意負數的時候
printf("-");
if(answer[wei+1]!=0)
printf("%d",answer[wei+1]);
for(i=wei;i>=1;i--)
{
if(s==1)
printf("%d",answer[i]);
else if(answer[i]!=0)
{
s=1;
printf("%d",answer[i]);
}
}
if(s==0) printf("\r0");
printf("\n");
free(Num1);
free(Num2);
free(answer);
}
void BigNumsSub(char *numa,char *numb) //大整數的相減(numa-numb)
{
int *Num1=NULL,*Num2=NULL,*answer=NULL;
int weishu1,weishu2,wei,len,j=0;
int i,sign=0,s=0; //負數情況比正數稍麻煩,於是用sign作為答案的正負符號標志
if(numa[0]=='-' && numb[0]!='-') //兩個數一正一負的時候,稍作調整後轉跳到相加
{
len=strlen(numb);
numb[len+1]='\0';
for(j=0;j<len;j++){
numb[j+1]=numb[j];
}
numb[0]='-';
BigNumsAdd(numa,numb);
return;
}
if(numb[0]=='-' && numa[0]!='-')
{
numb[0]='+';
BigNumsAdd(numa,numb);
return;
}
weishu1=strlen(numa);
Num1=(int*)malloc((Max+1)*sizeof(int));
weishu2=strlen(numb);
Num2=(int*)malloc((Max+1)*sizeof(int));
switcher(numa,Num1,weishu1);
switcher(numb,Num2,weishu2);
wei=(weishu1>weishu2)?weishu1:weishu2;
answer=(int*)malloc((wei+2)*sizeof(int));
for(i=0;i<wei+2;i++) answer[i]=0;
for(i=1;i<=wei;i++)
{
answer[i]+=(Num1[i]-Num2[i]);
if(answer[i]<0) //借位
{
answer[i]+=10;
answer[i+1]--;
}
}
if(answer[wei+1]<0)
{
for(i=1;i<=weishu2;i++) Num1[i]=0;
for(i=1;i<=weishu2;i++)
{
answer[i]=Num1[i]-answer[i];
if(answer[i]<0)
{
answer[i]+=10;
answer[i+1]++;
}
}
answer[weishu2+1]=0;
sign++;
}
if(numa[0]=='-') sign++; //注意負數的時候
if(sign%2!=0)
printf("-");
for(i=wei;i>=1;i--)
{
if(s==1)
printf("%d",answer[i]);
else if(answer[i]!=0)
{
s=1;
printf("%d",answer[i]);
}
}
if(s==0) printf("\r0");
printf("\n");
free(Num1);
free(Num2);
free(answer);
}
void BigNumsMul(char *numa,char *numb) //大整數乘法
{
int *Num1=NULL,*Num2=NULL,*answer=NULL;
int weishu1,weishu2,wei;
int i,j;
int yu,s=0;
weishu1=strlen(numa);
Num1=(int*)malloc((Max+1)*sizeof(int));
weishu2=strlen(numb);
Num2=(int*)malloc((Max+1)*sizeof(int));
switcher(numa,Num1,weishu1);
switcher(numb,Num2,weishu2);
wei=weishu1+weishu2; //乘法結果的最大位數是兩者位數和
answer=(int*)malloc((wei+1)*sizeof(int));
for(i=0;i<wei+1;i++) answer[i]=0;
for(j=1;j<=weishu1;j++)
{
for(i=1;i<=weishu2;i++)
{
answer[j+i-1]+=(Num1[j]*Num2[i]);
if((yu=answer[i+j-1]/10)!=0)
{
answer[i+j]+=yu;
answer[i+j-1]-=yu*10;
}
}
}
if((numa[0]=='-' && numb[0]!='-') || (numa[0]!='-' && numb[0]=='-'))
printf("-");
for(i=wei;i>=1;i--)
{
if(s==1)
printf("%d",answer[i]);
else if(answer[i]!=0)
{
s=1;
printf("%d",answer[i]);
}
}
if(s==0) printf("\r0");
printf("\n");
free(Num1);
free(Num2);
free(answer);
}
int check(char *s) //字元串檢查,當格式錯誤時候返回1,整個數字為0的時候返回2(用於除法的余數),正常返回0
{
int i;
int l,sign=1;
l=strlen(s);
if(s[0]!='-' && s[0]!='+' && (s[0]>'9' || s[0]<'0'))
{
printf("ERROR:輸入格式錯誤!\n");
return 1;
}
if(s[0]>='0' && s[0]<='9') sign=0;
for(i=1;i<l;i++)
{
if(s[i]!='0') sign=0;
if(s[i]>'9' || s[i]<'0')
{
printf("ERROR:輸入格式錯誤!\n");
return 1;
}
}
if(sign==1) return 2;
else return 0;
}
int main()
{srand(time(NULL));
char *num1,*num2;
int i;
int tmp;
for(i=0;i<33;i++)
printf(" ");
num1=(char*)malloc(Max*sizeof(char));
num2=(char*)malloc(Max*sizeof(char));
while(1)
{
system("cls");
printf("\n");
printf("\t\t\t\t 大整數運算程序\n");
printf("\t\t\t\t\tMenu\n");
printf("\t\t\t**************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.大整數的加法 *\n");
printf("\t\t\t* 2.大整數的減法 *\n");
printf("\t\t\t* 3.大整數的乘法 *\n");
printf("\t\t\t* 4.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t**************************************\n");
printf("\n\n\t\t\t 請選擇(1-4):");
scanf("%d",&i);
while((tmp=fgetc(stdin))!='\n');
switch(i)
{
case 1:
printf("輸入加法算式:");
inscanf('+',num1,num2);
if(check(num1)==1 || check(num2)==1)
break;
start=clock();
BigNumsAdd(num1,num2);
end=clock();
printf("時間是%f\n",(double)(end-start)/CLOCKS_PER_SEC/1000);
system("pause");
break;
case 2:
printf("輸入減法算式:");
inscanf('-',num1,num2);
if(check(num1)==1 || check(num2)==1)
break;
start=clock();
BigNumsSub(num1,num2);
end=clock();
printf("時間是%f\n",(double)(end-start)/CLOCKS_PER_SEC/1000);
system("pause");
break;
case 3:
printf("輸入乘法算式:");
inscanf('*',num1,num2);
if(check(num1)==1 || check(num2)==1)
break;
start=clock();
BigNumsMul(num1,num2);
end=clock();
printf("時間是%f\n",(double)(end-start)/CLOCKS_PER_SEC/1000);
system("pause");
break;
case 4:
free(num1);
free(num2);
return 0;
default:
printf("輸入錯誤!\n");
}
printf("\n");
}
}