C语言简单编程
文章目錄
- 一、一元二次方程求實根
- 二、實現兩個字符串的連接并且不用strcat函數
- 三、計算并輸出楊輝三角前十行
- 四、輸入正整數n生成n*n方陣,轉置并輸出
- 五、輸入字符串求其長度
- 六、編寫函數,函數功能:刪去一維數組中所有重復的數,只保留不同的數。
- 七、將一個數插入到數組中,并且不改變數組原來的順序
- 八、輸入兩個整數,求最大公因數
- 九、輸入一個十進制數,轉換為任意進制數
- 十、輸入一個以回車為結束的字符串,過濾掉所有的非數字字符后轉換成十進制整數輸出
- 十一、循環右移:整數右移任意位置
- 十二、輸入一個一回車結束的字符串,過濾掉所有非十六進制數后組成一個新的字符串,輸出該字符串并將其轉換成十進制后輸出
- 十三、字符數組中任意位置插入任意字符
- 十四、輸入兩個字符串,找到第二個字符串在第一個字符串中的位置,如沒找到輸出-1。用指針法實現
- 十五、遞歸方法將整數n轉換成字符串
一、一元二次方程求實根
#include <stdio.h> #include <math.h> int main() {float a,b,c,x1,x2,m,n,disc;scanf("%f%f%f",&a,&b,&c);disc=b*b-4*a*c;//dis<0無實根,>0有兩個不相等的實根,=0有兩個相等的實根if(m<0)printf("方程無實根");else{m=sqrt(disc)/(2*a);n=(-b)/(2*a);x1=n+m;x2=n-m;printf("兩個實根分別為%f,%f",x1,x2);} return 0; }二、實現兩個字符串的連接并且不用strcat函數
#include <stdio.h> int main() {char ch1[50],ch2[20],*p,*q;gets(ch1);gets(ch2);p=ch1;q=ch2;while(*p)p++;while(*q){*p=*q;p++;q++; }*p='\0';puts(ch1);return 0; }三、計算并輸出楊輝三角前十行
#include <stdio.h> int main() {int i,j,a[10][10]={0};for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<10;i++)for(j=0;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){for(j=0;j<10;j++)printf("%4d",a[i][j]);printf("\n") ; } return 0; }四、輸入正整數n生成n*n方陣,轉置并輸出
#include <stdio.h> int main() {int i,j,t,n,a[10][10],b[10][10];scanf("%d",&n);if(n>1&&n<=6){for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j]=i*n+j+1;for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("\n");}printf("\n");for(i=0;i<n;i++)for(j=0;j<n;j++)b[j][i]=a[i][j];for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",b[i][j]);printf("\n");}return 0; }}五、輸入字符串求其長度
#include <stdio.h> int main() {int length (char *p);int len;char ch1[80];gets(ch1);len=length(ch1);printf("長度為%d",len); } int length(char *p) {int n=0; while(*p) {p++;n++; } return n; }六、編寫函數,函數功能:刪去一維數組中所有重復的數,只保留不同的數。
#include <stdio.h> int fun(int a[],int x) {int i,j,k;for(i=0;i<x;i++){for(j=i+1;j<x;j++)if(a[i]==a[j]){for(k=j;k<x-1;k++)a[k]=a[k+1];j--;x--;}} return x; } int main() {int a[100],i,n,x;printf("輸入數組個數:");scanf("%d",&x);printf("輸入數組內容:"); for(i=0;i<x;i++)scanf("%d",&a[i]);n=fun(a,x);for(i=0;i<n;i++)printf("%d ",a[i]);return 0; }七、將一個數插入到數組中,并且不改變數組原來的順序
#include <stdio.h> int main() {int a[10]={1,3,5,7,9,10,11,15,17};int x,i,j,k;scanf("%d",&x);if(x>a[8])a[9]=x;else{for(i=0;i<9;i++)if(x<a[i]){ for(j=9;j>i;j--)a[j]=a[j-1];a[i]=x;break;} } for(i=0;i<10;i++)printf("%3d",a[i]); return 0; }八、輸入兩個整數,求最大公因數
#include <stdio.h> int main() {int m,n,r;do{scanf("%d%d",&m,&n);}while(m<=0||n<=0);if(m<n){r=m;m=n;n=r;}while(n!=0){r=m%n;m=n;n=r;}printf("%d",m);return 0; }九、輸入一個十進制數,轉換為任意進制數
#include <stdio.h> int main() {int m,n,k,a[10],i,j;char s[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};printf("輸入一個十進制數:\n");scanf("%d",&m);printf("要轉換的進制是:\n");scanf("%d",&n);i=0;while(m!=0){ k=m%n;a[i]=k;i++;m=m/n;}for(j=i-1;j>=0;j--)printf("%c",s[a[j]]); return 0;}十、輸入一個以回車為結束的字符串,過濾掉所有的非數字字符后轉換成十進制整數輸出
#include <stdio.h> int main() {char c[20];int i=0,m=0;while((c[i]=getchar())!='\n'){if(!(c[i]>='a'&&c[i]<='z')&&!(c[i]>='A'&&c[i]<='Z'))m=m*10+c[i]-'0';i++;}printf("%d",m);return 0; }十一、循環右移:整數右移任意位置
有n個整數,使前面各數順序循環移動m個位置(m<n)。
編寫函數實現上述功能,在主函數中輸入n個整數并輸出調整后的n個數。例如:
輸入 input n,m:5,3
1 2 3 4 5
輸出:3 4 5 1 2
十二、輸入一個一回車結束的字符串,過濾掉所有非十六進制數后組成一個新的字符串,輸出該字符串并將其轉換成十進制后輸出
#include <Stdio.h> int main() {char c,a[80];int i=0,j=0,b[80],m=0;while((c=getchar())!='\n'){if((c>='a'&&c<='f')||(c>='A'&&c<='F')||(c>='0'&&c<='9')){a[j]=c;j++;}i++;}a[j]='\0';printf("%s\n",a);i=0;while(a[i]!='\0'){if(a[i]>='a'&&a[i]<='f')b[i]=a[i]-'a'+10;if(a[i]>='A'&&a[i]<='F')b[i]=a[i]-'A'+10;if(a[i]>='0'&&a[i]<='9')b[i]=a[i]-'0';i++;}for(j=0;j<i;j++)m=m*16+b[j];printf("%d",m);return 0; }十三、字符數組中任意位置插入任意字符
#include <stdio.h> int main() {char s[80],c,*p,*q;int x,n=0;gets(s);scanf("%c",&c);scanf("%d",&x);p=q=s;while(*p)p++;while(*q){n++;if(n==x){while(p>=q)*(p+1)=*p--;*q=c;break;}q++;}puts(s);return 0; }十四、輸入兩個字符串,找到第二個字符串在第一個字符串中的位置,如沒找到輸出-1。用指針法實現
#include <stdio.h> int main() {char ch1[80],ch2[80],*p,*q;gets(ch1);gets(ch2);p=ch1;q=ch2;int count=0,flag=1;while(*p){if(*p==*q){while(*p==*q&&*q!='\0'){p++;q++;}p--;}if(*q=='\0'){flag=0;break;}else {p++;count++;q=ch2;}}if(flag==1)printf("-1");else printf("%d個位置",count);return 0;}十五、遞歸方法將整數n轉換成字符串
#include <stdio.h> int main() {void convert(int n);int number;scanf("%d",&number);if(number<0){putchar('-');number=-number;}convert(number);printf("\n");} void convert(int n) {int i;if((i=n/10)!=0)convert(i);putchar(n%10+'0'); }總結
- 上一篇: P2562kitty猫基因
- 下一篇: 揭秘 AGV 物流机器人黑科技