經(jīng)典C語(yǔ)言程序設(shè)計(jì)100例81-90
【程序81】 題目:809*??=800*??+9*??+1 其中??代表的兩位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。 1.程序分析: 2.程序源代碼: output(long b,long i) { printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); } main() {long int a,b,i; a=809; for(i=10;i<100;i++) {b=i*a+1; if(b>=1000&&b<=10000&&8*i<100&&9*i>=100) output(b,i); } } ----------------------------------------------------------------------------- 【程序82】 題目:八進(jìn)制轉(zhuǎn)換為十進(jìn)制 1.程序分析: 2.程序源代碼: main() { char *p,s[6];int n; p=s; gets(p); n=0; while(*(p)!='\0') {n=n*8+*p-'0'; p++;} printf("%d",n); } ----------------------------------------------------------------------------- 【程序83】 題目:求0—7所能組成的奇數(shù)個(gè)數(shù)。 1.程序分析: 2.程序源代碼: main() { long sum=4,s=4; int j; for(j=2;j<=8;j++)/*j is place of number*/ { printf("\n%ld",sum); if(j<=2) s*=7; else s*=8; sum+=s;} printf("\nsum=%ld",sum); } ----------------------------------------------------------------------------- 【程序84】 題目:一個(gè)偶數(shù)總能表示為兩個(gè)素?cái)?shù)之和。 1.程序分析: 2.程序源代碼: #include "stdio.h" #include "math.h" main() { int a,b,c,d; scanf("%d",&a); for(b=3;b<=a/2;b+=2) { for(c=2;c<=sqrt(b);c++) if(b%c==0) break; if(c>sqrt(b)) d=a-b; else break; for(c=2;c<=sqrt(d);c++) if(d%c==0) break; if(c>sqrt(d)) printf("%d=%d+%d\n",a,b,d); } } ----------------------------------------------------------------------------- 【程序85】 題目:判斷一個(gè)素?cái)?shù)能被幾個(gè)9整除 1.程序分析: 2.程序源代碼: main() { long int m9=9,sum=9; int zi,n1=1,c9=1; scanf("%d",&zi); while(n1!=0) { if(!(sum%zi)) n1=0; else {m9=m9*10; sum=sum+m9; c9++; } } printf("%ld,can be divided by %d \"9\"",sum,c9); } ----------------------------------------------------------------------------- 【程序86】 題目:兩個(gè)字符串連接程序 1.程序分析: 2.程序源代碼: #include "stdio.h" main() {char a[]="acegikm"; char b[]="bdfhjlnpq"; char c[80],*p; int i=0,j=0,k=0; while(a[i]!='\0'&&b[j]!='\0') {if (a[i]<b[j]) { c[k]=a[i];i++;} else c[k]=b[j++]; k++; } c[k]='\0'; if(a[i]=='\0') p=b+j; else p=a+i; strcat(c,p); puts(c); } ----------------------------------------------------------------------------- 【程序87】 題目:回答結(jié)果(結(jié)構(gòu)體變量傳遞) 1.程序分析: 2.程序源代碼: #include "stdio.h" struct student { int x; char c; } a; main() {a.x=3; a.c='a'; f(a); printf("%d,%c",a.x,a.c); } f(struct student b) { b.x=20; b.c='y'; } ----------------------------------------------------------------------------- 【程序88】 題目:讀取7個(gè)數(shù)(1—50)的整數(shù)值,每讀取一個(gè)值,程序打印出該值個(gè)數(shù)的*。 1.程序分析: 2.程序源代碼: main() {int i,a,n=1; while(n<=7) { do { scanf("%d",&a); }while(a<1||a>50); for(i=1;i<=a;i++) printf("*"); printf("\n"); n++;} getch(); } ----------------------------------------------------------------------------- 【程序89】 題目:某個(gè)公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過(guò)程中是加密的,加密規(guī)則如下: 每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。 1.程序分析: 2.程序源代碼: main() {int a,i,aa[4],t; scanf("%d",&a); aa[0]=a%10; aa[1]=a%100/10; aa[2]=a%1000/100; aa[3]=a/1000; for(i=0;i<=3;i++) {aa[i]+=5; aa[i]%=10; } for(i=0;i<=3/2;i++) {t=aa[i]; aa[i]=aa[3-i]; aa[3-i]=t; } for(i=3;i>=0;i--) printf("%d",aa[i]); }
----------------------------------------------------------------------------- 【程序90】 題目:專升本一題,讀結(jié)果。 1.程序分析: 2.程序源代碼: #include "stdio.h" #define M 5 main() {int a[M]={1,2,3,4,5}; int i,j,t; i=0;j=M-1; while(i<j) {t=*(a+i); *(a+i)=*(a+j); *(a+j)=t; i++;j--; } for(i=0;i<m;i++) printf("%d",*(a+i)); }
|