——Rex's Blog,Westlife歌迷,Linuxer
#include <stdio.h> typedef struct{ //定义“分数”结构体,num代表分子,denom分母 int num; int denom; }fraction; fraction makeRat(int num, int denom); //创建一个分数,num代表分子,denom代表分母 void Display(fraction r); //显示一个分数 fraction add(fraction first, fraction second); //分数的加 fraction sub(fraction first, fraction second); //分数的减 fraction mul(fraction first, fraction second); //分数的乘 fraction div(fraction first, fraction second); //分数的除 fraction neg(fraction rat); //求一个分数的相反数 fraction inv(fraction rat); //求一个分数的倒数 int gcd(int a, int b); //求两个数a和b最高公因数 int main(){ fraction a,b,c,d; a = makeRat(1,2); b = makeRat(11,23); c = makeRat(5,6); d = makeRat(5,26); fraction result = div(add(a,b),sub(c,d)); Display(result); return 0; } fraction makeRat(int num, int denom){ fraction rat; int i = gcd(num, denom); rat.num = num / i; rat.denom = denom / i; return rat; } void Display(fraction r){ printf("%d / %d\n", r.num, r.denom); } fraction add(fraction first, fraction second){ int num, denom; num = first.num * second.denom + first.denom * second.num; denom = first.denom * second.denom; return makeRat(num, denom); } fraction neg(fraction rat){ return makeRat(-rat.num, rat.denom); } fraction sub(fraction first, fraction second){ return add(first, neg(second)); } fraction mul(fraction first, fraction second){ int num, denom; num = first.num * second.num; denom = first.denom * second.denom; return makeRat(num, denom); } fraction inv(fraction rat){ return makeRat(rat.denom, rat.num); } fraction div(fraction first, fraction second){ return mul(first, inv(second)); } int gcd(int a, int b){ while(b != 0){ int tmp = a % b; a = b; b = tmp; } return a; }
自写函数,使用数组,形式上使用指针.实现输入一个含有n个字符的字符串str1,再输入另一个含有m个字符的字符串str2,从str1中的某位开始替换为str2.
#include <stdio.h> #include <string.h> void copyx(char *x,char *y,int i); int main() { char str1[100],str2[100]; //[]里的数字足够大即可 int l,i; printf("Please input the first word:\n"); scanf("%s",str1); printf("Please input the second word:\n"); scanf("%s",str2); l=strlen(str1); printf("Where do you want to insert the second word (From 1 to %d)\n",l); scanf("%d",&i); if (i<=0 || i>l) { printf("Wrong Number!\n"); return 0; } copyx(str1,str2,i); printf("%s",str1); return 0; } void copyx(char *x,char *y,int n) { int j; for (j=0;y[j]!='\0';j++) { *(x+n+j)=*(y+j); } *(x+n+j)='\0'; }
alipay
Dreamhost
Http Error
Linux
Nginx
Opera
Our Story
PHP
The Love Album
WHMCS
WinRAR
Wordpress
三坊七巷
天使
如果云知道
思念
搬家
教程
杂文
漏洞
笔记
自定义PHP.INI
花开的诺言
随想
青春 C (9)
Nginx (4)
Our Story (26)
The Love Album (12)
教程 (19)
杂文 (7)
随想 (24)
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.