C語言博客做業--數據類型

1、PTA實驗做業

題目1:7-1 交換a和b的值

1. 本題PTA提交列表

2. 設計思路

1.先定義三個整形變量a,b,t.其中a,b用於儲存輸入的兩個值,t(爲了與a,b方便區分用了t做爲中間值)則做爲中間變量用於a,b間的轉換。
2.輸入a,b的值
3.將a賦值給t
a賦值給b
t賦值給a
4.最終輸出a,bc++

3.代碼截圖

4.本題調試過程碰到問題及PTA提交列表狀況說明

此題我還嘗試了其餘的方法,我共搜到三種數組

  • 1就是我寫的這種(使用中間值)
  • 2使用^爲位運算符
  • 3 a=a+b;
    b=a-b;
    a=a-b;使用這個關係,輸出

題目2:7-3 倒順數字串

1. 本題PTA提交列表

2. 設計思路

1.定義整形變量n(做爲輸入值),i,j(i,j都作爲循環結構的條件)
2.輸入n的值,
3.分狀況討論(由於在我剛開始提交的過程當中沒注意到存在最小值的狀況,後來注意到了pta的錯誤提示,才注意到了最小值存在的狀況,因此我就分狀況討論了)學習

  • 1若n大於1,則i在不超出n的範圍內自增,且對i進行輸出(左半部分);則j從n-1,進行遞減,直到j不小於1範圍內輸出j
  • 2若a=1,則直接輸出1設計

    3.代碼截圖

4.本題調試過程碰到問題及PTA提交列表狀況說明

部分正確是由於以前最初沒考慮到最小值的存在(下面附圖修改過程)

可是仍是沒正確,上面一步還多考慮了n=0(多餘的)繼續。。。
3d

再繼續
調試

題目3:7-10 簡單計算器

1. 本題PTA提交列表

2. 設計思路

1.定義整形變量a,b分別用於計算中的輸入值
2.定義字符變量c,用於儲存運算符
3.- 1若輸入+,則進行a,b的和運算blog

  • 2若輸入-,則進行a,b的差運算
  • 3若輸入*,則進行a,b的積運算
  • 4若輸入/,則進行a,b的商運算(爲/時分母b不能爲0,若爲0 ,則輸出ERROR)
    4.運算結束(即輸出等號)輸出結果a

3.代碼截圖

4.本題調試過程碰到問題及PTA提交列表狀況說明

看這個樣例1+2*10-10/2=,涉及到數字和字符,涉及到運算符優先級等等問題。就再去看了一遍書並在dev c++上修改了屢次,特別是輸出ERROR這塊很差弄。排序

2、截圖本週題目集的PTA最後排名

3、本週學習總結

1.你學會了什麼?

1.1 一維數組如何定義、初始化?

定義方式:數組能夠用一個初始列表值來初始化,數組能夠用一個初始列表值來初始化隊列

1.2 一維數組在內存中結構?可畫圖說明。數組名錶示什麼?

數組名通常來講是常量存放在常量區內存

1.3 爲何用數組?

使用數組會讓程序變的簡單,並且避免了定義多個變量的麻煩

1.4 介紹選擇法、冒泡法、直接插入排序如何排序?僞代碼展現.

include<stdio.h>  

int swap(int a,int b)  
{  
    int t=a;  
    
a=b;  
    
b=t;  
}  

  冒泡排序的原理:每次在無序隊列裏將相鄰兩個數依次進行比較,將小數調換到前面, 
  逐次比較,直至將最大的數移到最後。最將剩下的N-1個數繼續比較,將次大數移至倒數第二位。 
  依此規律,直至比較結束。 
  冒泡排序的代碼以下: 
 
void bubble_sort(int a[], int n){  
    int i,j;  
    for(i=0;i<n-1;++i)  
        for(j=0;j<n-i-1;++j)  
        {  
            if(a[j]>a[j+1])  
                swap(&a[j],&a[j+1]);  
        }  
}  

  選擇排序的原理:每次在無序隊列中「選擇」出最小值,放到有序隊列的最後,並從無序隊列 
  中去除該值(具體實現略有區別)。 
  選擇排序的代碼以下: 
 
void selection_sort(int a[],int n){  
    int i,j;  
    int min;  
    for(i=0;i<n;++i)  
    {  
        min=i;  
        for(j=i+1;j<n;++j)  
        {  
            if(a[j]<a[min])  
                min=j;  
        }  
        if(min!=i)  
            swap(&a[min],&a[i]);  
    }  
}  

  插入排序的原理:始終定義第一個元素爲有序的,將元素逐個插入到有序排列之中,其特色是要不斷的 
  移動數據,空出一個適當的位置,把待插入的元素放到裏面去。 
  插入排序的代碼以下: 
 
void
insertion_sort(int a[], int n)
{
  int i, j, num;
 
  for (i = 1; i < n; ++i) {
    num = a[i];
    for (j = i - 1; j >= 0 && a[j] > num; --j)
      a[j+1] = a[j];
    a[j+1] = num;
  }
}   

1.5 介紹什麼是二分查找法?它和順序查找法區別?

1.對比順序查找就是順序的一個一個的比下去..1和二、1 和三、1和4...1和n2.二分查找就是先和最中間的元素比較 大於此元素時將起始下標設置爲此元素下表 繼續和右邊的中間元素比較,直到查找成功位置 相反小於則和左邊的比較(默認數組一從小到大排序完整)

1.6 二維數組如何定義、初始化?

    1.在定義時能夠直接賦值來初始化
    2.在定義後能夠爲其元素一個個來賦值

1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。

轉置可將i與j的位置對換
下三角:i<=j 。
上三角:i>=j。
對稱矩陣:a[i][j]=a[j][i]。

1.8 二維數組通常應用在哪裏?

主要用於表示二維表和矩陣

2.本週的內容,你還不會什麼?

相關文章
相關標籤/搜索