#include<stdio.h> void triangel(int num){ int i,j,space=num-1,x; for (i=1 ; i<=num ; i++,space--){ for(x=1;x<=space;x++) printf(" "); for (j=1 ; j<=(-1+2*i) ; j++) printf("*"); printf("\n"); } for(i=1;i<=num;i++){ for(x=1;x<=num-1;x++) printf(" "); printf("*\n"); } for(i=1;i<=num-1-5;i++){ printf(" "); } printf("Merry Christmas!"); } int main(void){ triangel(10); return 0; }
2011年12月25日 星期日
100設計一甲_Merry Christmas
Merry Christmas tree.c
2011年12月20日 星期二
100設計一甲_week15
libw15.c
#include <stdio.h> #include <stdlib.h> int add(int a, int b, int c) { return a+b+c; } double add2(double a, double b, double c) { return a+b+c; } int mul(int a, int b, int c) { return a*b*c; }ex1.py
#coding: utf-8 # 本程式透過 ctype 模組, 直接導入 dll 動態連結庫, 並使用其函式 from ctypes import cdll,c_int,c_double lib = "libw15.dll" dll = cdll.LoadLibrary(lib) #add = (lambda x,y: dll.add(c_int(x), c_int(y))) # 以上 lambda 函式定義與下列函式相同 def add(x,y,z): return dll.add(c_int(x), c_int(y), c_int(z)) ''' ctypes 介面僅支援整數, 長整數與字串資料型別, 若使用(雙)浮點數或其他 ctype 所不支援的 資料型別, 則必須要明確告訴 ctypes 如何進行函式傳回值的轉換, 否則無法得到精確資料 ''' def add2(x,y,z): return dll.add2(c_double(x), c_double(y), c_double(z)) # 指定 add2 函式的資料傳回型別為 c_double dll.add2.restype = c_double multiply = (lambda x,y,z: dll.mul(c_int(x), c_int(y), c_int(z))) 變數1 = 12 變數2 = 10 變數3 = 15 print ("變數1加上變數2加上變數3, 其值為:",add(變數1,變數2,變數3)) print ("變數1乘上變數2乘上變數3, 其值為:",multiply(變數1,變數2,變數3)) ''' 15*12 = 15*2+15*10 = 150+30 = 180 15*12 = 15*2*6 = 180 ''' 變數4 = 12.345 變數5 = 10.6 變數6 = 66.6 print ("變數4加上變數5加上變數6, 其值為:",add2(變數4,變數5,變數6))123.c complier出來的dll重新命名為->sum.pyd
#include <Python.h> int sum2(int a, int b, int c); int sum2(int a, int b, int c){ return a+b+c; } static PyObject* mod_sum(PyObject *self, PyObject *args) { int a; int b; int c; int s; if (!PyArg_ParseTuple(args,"iii",&a,&b,&c)) return NULL; s = sum2(a,b,c); return Py_BuildValue("i",s); } static struct PyMethodDef Mod_Methods[] = { {"sum", mod_sum, METH_VARARGS, "Description.."}, {NULL,NULL,0,NULL} }; static struct PyModuleDef ModMethods = { PyModuleDef_HEAD_INIT, "SumModule", "SumModule_doc", -1, Mod_Methods }; PyMODINIT_FUNC PyInit_sum(void) { (void) PyModule_Create(&ModMethods); }ex2.py
''' from sum import * print(sum(10,20)) ''' import sum print(sum.sum(10,20,30))w15.c
#include<stdio.h> #define pi 3.14159 double circlearea(double r){ return r*r*pi; } int plus(int a,int b,int c){ return a*b-c; } float bmi(float heigh,float weight){ return weight/(heigh*heigh); } char *mystring(char str[]){ return str; //printf("%s",str); } int main(void) { printf("%e\n",circlearea(1.)); printf("%d\n",plus(1.5,6,5)); printf("%d\n",plus(1,6,5)); printf("%f\n",bmi(1.8,60)); printf("%s\n",mystring("asd")); mystring("asd"); return 0; }
2011年12月6日 星期二
100設計一甲_week13
#include<stdio.h> void fun1(){ int i=0; printf("while test1----\n"); while(i<15){ printf("%d\n",i); i++; } i=15; printf("while test2----\n"); while(i){ printf("%d\n",i); i--; } printf("for test1----\n"); for(i=0;i<15;i++){ printf("%d\n",i); } } int main(){ int num1 = 123; float num2 = 3.14159; double num3 = 3.14159e-3; char name1[6] = {'h','e','l','l','o','\0'}; char name2[6] = "hello"; /* 字串最後必須加上結束\0字元,代表字串結束 hello 為五個字元 但最後必須加上\0,所以為六個字元。 */ printf("%d\n", num1); printf("%f\n", num2); printf("%e\n", num3); printf("%s\n", name1); printf("%s\n", name2); printf("%c\n", name1[1]); printf("%c\n", name2[1]); fun1(); return 0; }
訂閱:
文章 (Atom)