C语言程序设计经典例题

发布时间:2024-11-21

数组中找最大最小数及其位置 #include <stdio.h> #define N 10 void main() { int i,max,min, a[N]; printf("请输入10个整数:"); for(i=0;i<N;i++) scanf("%d",&a[i]); max=0; min=0; for(i=1;i<N;i++) { if(a[i]>a[max]) max=i; }

for(i=1;i<N;i++) { if(a[i]<a[min]) min=i; } printf("最小数=%d,在数组中的下标是:%d\n",a[min],min); printf("最大数=%d,在数组中的下标是:%d\n",a[max],max); }

冒泡法排序

#include <stdio.h> #define N 10 void main() {

int i,j,t,a[N]; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) { for(j=0;j<N-i-1;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }

for(i= 0;i<10;i++) printf("%d ",a[i]); printf("\n"); }

选择法排序

#include <stdio.h> #define N 10 void main() {

int i,j,t,a[N]; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0; i<N-1; i++) for(j=i+1; j<N; j++) if(a[i] > a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for(i= 0;i<10;i++) printf("%d ",a[i]); printf("\n"); }

插入法排序

#include <stdio.h> #define N 10 void main(void) {

int i,j,t,k,a[N]; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<=N-1;i++) { t=a[i]; if(a[i]<a[0]) k=0; else for(j=0;j<=i-1;j++) if(a[i]>a[j])

k=j+1; for(j=i-1;j>=k;j--) a[j+1]=a[j]; a[k]=t; } for(i= 0;i<10;i++) printf("%d ",a[i]); printf("\n"); }

统计数据中不同数字个数 #include <stdio.h> void main(void) { int a[10]={0}; int i; char c; printf("请输入一个数据,以回车结束:\n"); while((c=getchar())!='\n') { if(c>='0' && c<='9') a[c-'0']++; } for(i=0;i<10;i++) if(a[i]!=0) printf("%c:%d个\n",'0'+i,a[i]); }

统计单词中个字母的次数 #include <stdio.h> void main(void) { int a[26]={0}; int i; char c; printf("请输入一串英文,以回车结束:\n"); while((c=getchar())!='\n') { if(c>='a' && c<='z') a[c-'a']++; else if(c>='A' && c<='Z') a[c-'A']++; }

for(i=0;i<26;i++) if(a[i]!=0) printf("%c:%d个\n",'A'+i,a[i]); }

找100以内的素数,并以10个一行输出 #include <stdio.h> #include <math.h> void main(void) {

int i,j,c; int a[100];

for(i=0;i<100;i++) a[i]=i+1;

a[0]=0;

for(i=0;i<sqrt(100);i++) if(a[i]!=0)

for(j=i+1;j<100;j++)

if(a[j]%a[i]==0) a[j]=0;

c=0;

for(i=0;i<100;i++) if(a[i]!=0) { printf("%5d",a[i]); c++; if(c%10==0) printf("\n"); } }

矩阵转置

#include <stdio.h> #define M 3 void main() {

int i,j,t,a[M][M]; for(i=0;i<M;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); for(i=0;i<M;i++)

{ t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } for(i=0;i<M;i++) { for(j=0;j<M;j++) printf("%4d",a[i][j]); printf("\n"); } }

5行5列矩阵 #include<stdio.h> #define N 5 void main() { int i,j,a[N][N]; int s1=0,s2=0,s3=0,s4=0,min,max,row=0,col=0; printf("输入5行5列矩阵:\n"); for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",&a[N][N]); for(i=0;i<5;i++) for(j=0;j<5;j++) s1+=a[i][j]; printf("所有元素的和为%d\n",s1); for(i=0;i<5;i++) s2+=a[i][i]+a[4][0]+a[3][1]+a[1][3]+a[0][4]; printf("主副对角线之和为%d\n",s2); for(i=0;i<5;i++) s3+=(a[i][0]+a[i][4]); for(j=0;j<5;j++) s3+=(a[0][j]+a[4][j]); s3=s3-a[0][0]-a[0][4]-a[4][0]-a[4][4]; printf("所有靠边元素和为%d\n",s3); s4=s1-s3;

printf("所有内部元素的和为%d\n",s4); max=a[0][0]; min=a[0][0]; for(i=0;i<5;i++)

{ if(a[i][j]>max) { max=a[i][j]; row=i; col=j; } } printf("最大值为%d,行号为%d,列号为%d\n",max,row,col); for(i=0;i<5;i++) for(j=0;j<5;j++) { if(a[i][j]<min) { min=a[i][j]; row=i; col=j; } } printf("最小值为%d,行号为%d,列号为%d\n",min,row,col); }

最大行最小行交换 #include <stdio.h> int main(void) { int arr[5][5],sum[5]; int i,j; int t,max=0,min=0,p,q; printf("请输入5*5的矩阵数据:\n"); for(i=0;i<5;i++) { sum[i]=0; for (j=0;j<5;j++) { scanf("%d",&arr[i][j]); sum[i]+=arr[i][j]; } } max=sum[0]; p=0; min=sum[0];

q=0; for (i=1;i<5;i++) { if (max<sum[i]) { t=max;max=sum[i];p=i; } if (min>sum[i]) { t=min;min=sum[i];q=i; } } if (p!=q) { for (i=0;i<5;i++) { t=arr[p][i];arr[p][i]=arr[q][i];arr[q][i]=t; } } printf("交换后为:\n"); for (i=0;i<5;i++) { for (j=0;j<5;j++) { printf("%d ",arr[i][j]); } printf("\n"); } return 0; }

字符串复制

#include <stdio.h> #include<string.h> void main() { char st1[30]="My name is",str2[]="John."; puts(str1); puts(str2); strcpy(str1,str2); puts(str1); puts(str2); }

字符串 判断是否回文 #include<stdio.h> void main() { char string[80]; int i,j,n; gets(string); n=strlen(string); j=n-1; for(i=0;i<j;i++,j--) if(string[i]!=string[j])break; if(i==j) printf("Yes\n"); else printf("No\n"); }

函数 判断闰年 #include<stdio.h> int f(int x) {

if((x%4==0)&&(x%100!=0)||(x%400==0)) return 1; else return 0; }

void main() {

int a,b;

scanf("%d",&a); b=f(a); if(b)

printf("%d是闰年",a); else printf("%d不是闰年",a); }

三角形面积

#include <stdio.h> #include <math.h>

float area(float a,float b,float c) {

float s,p;

p=(a+b+c)/(2.0);

s=sqrt(p*(p-a)*(p-b)*(p-c)); return s; }

main() {

float a,b,c,s;

scanf("%f%f%f",&a,&b,&c);

printf("%f",area(a,b,c)); }

素数,孪生素数 #include<stdio.h> int f1(int n) { int i; for(i=2;i<n;i++) if(n%i==0)break; if(i==n) return 1; else return 0; }

void main() { int i,c=0; printf("-*素数为\n"); for(i=2;i<=100;i++) { if(f1(i)==1) { printf("%5d",i); c++; if(c%5==0) printf("\n"); } } printf("\n孪生素数有\n"); for(i=2;i<=98;i++) { if(f1(i)==1&&f1(i+2)==1) printf("%d,%d\n",i,i+2);

} }

函数 回文数 #include<stdio.h> #include <string.h> int main() {

char str[100]; int i,len;

printf("输入字符串:"); scanf("%s",str); len = strlen(str);

for(i=0; i<len/2; i++) {

if(str[i]!=str[len-i-1]) {

break; } }

if(i==len/2) {

printf("%s是回文\n",str); } else {

printf("%s不是回文\n",str); } }

函数 完全数 #include<stdio.h> int fun(int n) { int i,s=0; for(i=1;i<n;i++) { if(n%i==0) s=s+i; } if(s==n) return 1; else

return 0; }

void main() { int n; scanf("%d",&n); if(fun(n)) printf("%d是完全数\n",n); else printf("%d不是完全数\n",n); }

函数 水仙花数 #include<stdio.h> int f(int n) {

int a=0,m=n; while (n>0) {

a=a+(n%10)*(n%10)*(n%10); n=n/10; }

if(a==m) return 1; else return 0; }

void main() {

int n;

scanf("%d",&n); if(f(n)==1) printf("%d是水仙花数\n",n); else

printf("%d不是水仙花数\n",n); }

函数 最大公约数,最小公倍数 #include<math.h> #include<stdio.h> int fmax(int m,int n) {

int r; r=m%n;

while(r!=0) {

m=n; n=r; r=m%n; }

return n; }

int fmin(int m,int n) {

return m*n/fmax(m,n); }

main() {

int a,b;

scanf("%d,%d",&a,&b);

printf("fmax is:%d\n",fmax(a,b)); printf("fmin is:%d\n",fmin(a,b)); }

C语言程序设计经典例题.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219