PIXNET Logo登入

以歌者之名流浪                         <embed src="http://www.clocklink.com/clocks/0031-black.swf?TimeZone=CCT&" width="65" height="65" wmode="transparent" type="application/x-shockwave-flash">

跳到主文

天太高 星子太淡 而未來又太刺眼了點 登入 登出

部落格全站分類:生活綜合

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 11月 02 週日 200821:01
  • 【C】大數四則運算 粗劣版

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*大數四維運算,以char陣列存數字 需string.h */
#define LEN 550 /*設定處理最大位數*/
/*INPUT:將數字存入某陣列*/
/*
輸入:存放目標陣列名 輸出:0代表成功 -1代表失敗
1.清空目標陣列=0 
2.接收輸入放入暫存陣列,失敗則傳回-1
3.計算數字位數(strlen)
4.從個位開始依序放入目標陣列,內容從字元轉成數字
  若個位為1 ,n[0]為1(不是1的ASCII)
*/
int InputBigNum(char n[])
{
  char tmp[LEN];  int i,m;
  for (i=0;i<LEN;i++)  {  n[i]=0;  }
  if(scanf("%s",tmp)<1)  {  return -1;  }
  m=strlen(tmp);
  for(i=0;i<m;i++)  {  n[i]=tmp[m-i-1]-'0';  }
}
 
/*OutputBigNum:傾印出數字*/
/*
輸入:要被印出來的數陣列名 無return
1.找到非0之數字開頭元素號p 找到f=1 @要是發現全部都是0找不到開頭則f=0
2.倒序轉成字元印出,個位最後傾印,印完不換行
  @要是發現全部都是0會印出一個0
*/
void OutputBigNum(char n[])
{
  int i,p,f=0;
  for(p=LEN-1;p>=0;p--)
  {  if(n[p]!=0)  {  f=1;  break;  }  }
  if(f)
  {  for(p;p>=0;p--)  printf("%c",n[p]+'0');  }
  else  {  printf("0");  }
}    
 
/*AddBigNum: 兩數相加*/
/*
輸入:被加數a,加數b,結果存放陣列c 無return
1.從個位開始一個個相加(a+b+tmp),如有進位存放在tmp
*/
void AddBigNum(char a[], char b[], char c[] )
{
  int i,tmp=0;
  for(i=0;i<LEN;i++)
  {
    c[i]=a[i]+b[i]+tmp;
    if(c[i]>=10)  {  tmp=1; c[i]=c[i]%10;  }
    else{ tmp=0;  }
  }
}
/*SubBigNum 兩數相減*/
/*
輸入:被減數a,減數b,結果存放陣列c 有return(成功相減:1,a<b:0)
IF a<b則c不變;
0;檢查a是否>=b,若否則傳回-1結束
1.從個位開始一個個相減,結果加上10預防負數(a-b-tmp)
 若減出<10(原為負數)
 則tmp=1及把預防負數的10從結果裡減掉 
*/
int SubBigNum(char a[], char b[], char c[])
{
  int i,tmp=0;
  for(i=LEN-1;i>=0;i--)
  {
    if(a[i]>b[i])  break;
    if(a[i]<b[i])  {  return 0; } 
  }
  for(i=0;i<LEN;i++)
  {
    c[i]=a[i]-b[i]-tmp+10;
    if(c[i]<10)  {  tmp=1;  }
    else  {  tmp=0;  c[i]=c[i]-10;  }
  }
  return 1;
}
/*MulBigNum 兩數相乘*/
/*
輸入:被乘數a,乘數b,結果存放陣列c 無return
0.清空暫存結果的陣列d (用d的目的是避免c和a.b相同時出錯)
1.m=a,b兩者的位數和+1,作為結果可能的最大存位  
2.積的第n位數=a[n]b[0]+a[n-1]b[1]+.....a[0]b[n]+上一個位數的進位tmp 依此由[0]計算每個d
3.把d內數寫入c
*/
void MulBigNum(char a[], char b[], char c[])
{
  int i,j,tmp=0,m=0,d[LEN];
  for(i=0;i<LEN;i++)  {  d[i]=0;  }
 
  for(i=LEN-1;i>=0;i--)  {if (a[i]!=0)  break;  }
  m+=i;
  for(i=LEN-1;i>=0;i--)  {  if (b[i]!=0)  break;  }
  m+=i;
  m++;
  
  for(i=0;i<=m;i++)
  {
    for(j=i;j>=0;j--)
    {  d[i]+=a[j]*b[i-j];  }
    d[i]+=tmp;
    if(d[i]>=10)  {  tmp=d[i]/10;  d[i]=d[i]%10;  }
    else tmp=0; 
  }
  for(i=0;i<LEN;i++)  {  c[i]=d[i];  }
}
(繼續閱讀...)
文章標籤

jaacnaett 發表在 痞客邦 留言(2) 人氣(5,086)

  • 個人分類:程式設計自己來
▲top
  • 10月 29 週三 200821:05
  • 【C】數學-簡單兩矩陣相乘

/*
陣列模擬簡單兩矩陣相乘 A[](mxn)、B[](nxp)
為了驗算數學而寫
使用DOS命令更改視窗大小標題及色彩
*/
#include <stdio.h>
#include <stdlib.h>
int m,n,p,i,j,k,l;
int main()
{
  system("title 矩陣乘法計算  By 彩");
  system("mode con cols=75 lines=30");
  system("color 8F");
  while(1)
  {
    printf("\n\n輸入矩陣A之列數m、行數及矩陣B之行數p\n");
    scanf("%d",&m);
    scanf("%d",&n);
    scanf("%d",&p);
    float a[m][n],b[n][p],c[m][p];
    
    printf("\n輸入A\n");
    for(i=0;i<m;i++)
    {
      for(j=0;j<n;j++)
      {  scanf("%f",&a[i][j]);  }
    }
    
    printf("\n輸入 B\n");
    for(i=0;i<n;i++)
    {
      for(j=0;j<p;j++)
      {  scanf("%f",&b[i][j]);  }
    }
    
    for(i=0;i<m;i++)
    {
      for(j=0;j<p;j++)
      {
        c[i][j]=0;
        for(k=0;k<n;k++)
        {  c[i][j]+=a[i][k]*b[k][j];  }
      }
    }
    
    printf("===============\n");
    for(i=0;i<m;i++)
    {
      for(j=0;j<p;j++)
      {  printf("%.1f   ",c[i][j]);  }
      printf("\n");
    }
  }
}
/*
轉用請附來源說明
以歌者之名流浪
http://jaacnaett.pixnet.net/blog/
*/
(繼續閱讀...)
文章標籤

jaacnaett 發表在 痞客邦 留言(4) 人氣(22,808)

  • 個人分類:程式設計自己來
▲top
  • 10月 18 週六 200815:53
  • ShutUp 1.0

這個程式是給各位上電腦課的同學們,一個逃脫老師的監視廣播的機會XD
適用廣播軟體為 LanStar Visual Class不知道哪一版
編寫給抵死不想打開DOS輸入命令的人用,關閉Lanclt.exe
當初拿這個練習BAT腳本,本來只要一行的程式
為了嘗試加上版權輸出還有自我刪除等,被我搞成了十幾行
還算好的咧,剛剛在網上找到個大陸同學的作品
他為了個GUI介面,同樣是BAT,整整193行......牛B啊,真服了他。
(繼續閱讀...)
文章標籤

jaacnaett 發表在 痞客邦 留言(8) 人氣(490)

  • 個人分類:程式設計自己來
▲top
1

BloggerADs

文章分類

toggle 【生物學習分享】 (5)
  • 英文新聞作筆記 (3)
  • 野外相機四處看 (3)
  • 洋菇找台大菇菇 (2)
  • 普通心理學筆記 (4)
  • 生物筆記雜合物 (41)
toggle 【小電教學分享】 (8)
  • Java學習全記錄 (2)
  • 網路服務及應用 (27)
  • 玩部落語法小物 (17)
  • 系統及軟硬體們 (11)
  • 密技遊戲小Tip (13)
  • 解毒有蟲看問題 (16)
  • 影音圖像多媒體 (2)
  • 程式設計自己來 (3)
toggle 【與時遷移手記】 (3)
  • 似乎還沒滿十歲 (74)
  • 是同一個人沒錯 (15)
  • 競賽可以是什麼 (8)
toggle 【關注新知隨想】 (5)
  • 新聞時事看一眼 (21)
  • 問題很多的串聯 (9)
  • 謎物關注探照燈 (37)
  • 隨想摘抄雜物堆 (4)
  • 囧莔烱絅朙浻冏 (6)
toggle 【文字遊戲等等】 (2)
  • 如果可以是枚詩 (0)
  • 不行就無以名狀 (1)
toggle 【廣告黃金寫手】 (1)
  • 其實不過是廣告 (0)
  • 未分類文章 (1)

文章彙整

部落格文章搜尋

熱門文章

  • (12,948)Akinator-你在想誰它知道!名人猜猜猜
  • (8,357)果蠅的性別決定 筆記
  • (6,823)據說完整版Hide and Seek有五種結局耶(囧
  • (6,460)DIY動手做3D幻覺小恐龍-Dragon Illusion
  • (6,329)【蛙剖】蛙肌肉細胞大集合&血球&軟骨特寫
  • (1,671)【心測】你有"女性大腦"嗎?同理商數(Empathy quotient)測驗
  • (239)我的星座命盤
  • (208)奧妙的中國文字學-1【囧】
  • (169)Notepad
  • (81).

最新迴響

  • [22/01/31] 涂旃榕涂景翔0935-285-935 於文章「果蠅的性別決定 筆記...」留言:
    https://drive.google.com/drive...
  • [21/12/27] ckpioneer1108 於文章「【解決】PPT插入的影片無法在使用投影機...」發表了一則私密留言
  • [20/10/28] 葦恩咖啡 於文章「【CSS】恢復顯示Pixnet Blog...」留言:
    問題已解決,萬分感謝。...
  • [20/02/02] 訪客 於文章「【C】數學-簡單兩矩陣相乘...」留言:
    zerojudge 說你跟我都是錯的喔...
  • [19/10/06] Ruchira ❤️ 於文章「【CSS】恢復顯示Pixnet Blog...」留言:
    讚~~感謝!...
  • [18/05/03] 訪客 於文章「自己設計列印好用方格紙和筆記紙...」留言:
    方格紙DIY網站 http://www.mygraphpa...
  • [18/03/19] 訪客 於文章「【PTT轉文】有關洪蘭<<腦內乾坤>>一...」留言:
    程度不夠難以理解才會對洪蘭教授產生誤會 洪蘭教授博學多聞論...
  • [17/10/17] yaoyao 於文章「【轉】二氧化氯消毒? 未防疫先傷身...」留言:
    可以教教我如何自製二氧化氯嗎?謝謝!!!...
  • [17/07/08] fly15 於文章「自己設計列印好用方格紙和筆記紙...」留言:
    很棒的方格紙分享~苦惱中試著搜尋沒想到真的有...
  • [17/05/08] 水熊 於文章「杜絕PowerPoint 2007 放圖...」留言:
    sp2已安裝,也重開機了 office-kb975021-...

部落軌道

自訂側欄

教育部部落格大賽

想了解放廣告請按此

參觀人氣

  • 本日人氣:
  • 累積人氣:

分享連結

TAGs