chaoscrow111
111非排序字符串
;;;
過濾字符串
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int isident( char s[] )
{
? int i;
? for ( i=0; s[i]!='\0'; i++ )
? ? if ( s[i]!= '_' && !isalnum(s[i]))
? ? ? return 0;
? if (isdigit(s[0]))
? ? return 0;
? return 1;
}
int main()
{
? char s[][10] = { "a%1", "a12", "aaa", "$ss", "1sss" };
? int i, j=0;
? for ( i=0; i<5; i++ )
? ? if (isident(s[i]))
? ? ? strcpy( s[j++], s[i] );
? for (i=0; i<j; i++ )
? ? printf("%s ", s[i]);
? return 0;
}
最長(zhǎng)字符串
#include<stdio.h>
#include<string.h>
int main()
{
? int f(char a[][100],int n);
? char a[5][100];
? int i,n=5,s;
? for(i=0;i<n;i++)
? ? gets(a[i]);
? s=f(a,n);
? printf("%s",a[s]);
? return 0;
?}?
?int f(char a[][100],int n)
?{
? int i,s=strlen(a[0]),k;
? for(i=1;i<n;i++)
? {
? ? if(s<strlen(a[i]))
? ? ? k=i;
? }
? ?return k;
?}
連接字符串
#include<stdio.h>
void strconn(char s1[],char s2[])
{
? int i,j;
? for(i=0;s1[i]!='\0';i++)
? ? ;
? ??
? for(j=0;s2[j]!='\0';j++)
? ? s1[i++]=s2[j];
? s1[i]='\0';?
}
int main()
{
? char str1[100],str2[50];
? scanf("%s%s",str1,str2);
? strconn(str1,str2);
? puts(str1);
? return 0;
}
實(shí)參傳來一個(gè)字符串
#include<stdio.h>
void fun(char arr[],int *l,int *d,int *s,int *o)
{
? int i;
? for(i=0;arr[i]!='\0';i++)
? {
? ? if(arr[i]>='A'&& arr[i]<='Z'||arr[i]>='a'&& arr[i]<='z')?
? ? ? (*l)++;
? ? else if(arr[i]>='0'&& arr[i]<='9')
? ? ? (*d)++;
? ? else if (arr[i]==' ')
? ? ? (*s)++;
? ? else
? ? ? (*o)++;?
? }?
}
int main()
{
? int letter=0,digit=0,space=0,other=0;
? char str[100];
? gets(str);
? fun(str,&letter,&digit,&space,&other);
? printf("letter:%d\ndigit:%d\nspace:%d\nothers:%d\n",letter,digit,space,other);
? return 0;
}
求字符串長(zhǎng)度
#include<stdio.h>
int len(char *p)
{
? int n=0;
? while (*(p++)!='\0')?
? ? n++;
? return(n);
}
int main()?
{
? char str[20];
? gets(str);
? printf("%d",len(str));
? return 0;
}
復(fù)制字符串
#include<stdio.h>
void copystr(char *p1,char *p2,int m){
? int i= m-1,j=0;
? for( ; *(p1+i)!='\0'; i++,j++ )
? ? *(p2+j) = *(p1+i);
? *(p2+j)='\0';
}
int main (){
? int m;
? char str1[20] = "abcdefg",str2[20];
? scanf("%d",&m);
? copystr(str1,str2,m);
? printf("%s",str2);
? return 0;
}
;;;
222數(shù)組與回文
;;;
一維實(shí)型數(shù)組
#include <stdio.h>
void sum(float a[],float n,float *max,float *min,float *aveg){
? for(int i=0;i<n;i++){
? ? if(*max<a[i]){
? ? ? *max = a[i];
? ? }
? ? if(*min>a[i]){
? ? ? *min = a[i];
? ? }
? ? *aveg = *aveg + a[i];
? }
? *aveg = *aveg / n;
}
int main(){
? int n,i;
? scanf("%d",&n);
? float a[n],max,min,aveg;
? for(i=0;i<n;i++){
? ? scanf("%f",&a[i]);
? }
? max = min = a[0];
? aveg = 0;
? sum(a,n,&max,&min,&aveg);
? printf("max:%.2f\n",max);
? printf("min:%.2f\n",min);
? printf("aveg:%.2f\n",aveg);
}
找出數(shù)組中的最小數(shù)
#include <stdio.h>
#include <math.h>
int qmin(double arr[], int n) {
? int min=arr[0],j;
? for(j=1; j<n; j++)
? ? if(min>arr[j])
? ? ? min=arr[j];
? return min;
}
int main() {
? double y[50];
? int i;
? for(i=0; i<50; i++)
? ? y[i]=600*sin(i*0.16);
? printf("min=%d",qmin(y,50));
? return 0;
}
字符是否是回文
#include<stdio.h>
#include<string.h>
int fun(char *str)
{
? int i, j, k = 1;
? for(i=0,j=strlen(str)-1; i<j; i++,j--)?
? ? if (str[i]!= str[j])
? ? ? return 0;
? return 1;?
}
int main() {
? char str[100];??
? gets(str);
? if (fun(str))
? ? printf("yes");
? else
? ? printf("no");??
? return 0;
}
回文數(shù)
#include<stdio.h>
int hws(int x)
{int sum=0,t;
?t=x;
?while(x)
?{sum=10*sum+x%10;
?x/=10;}
?if(sum==t) return 1;
?else return 0;
}
int main() {
int i;
for(i=1;i<=300;i++)
if(hws(i)==1&&hws(i*i)==1)?
? ?printf("%d ",i);
}
;;;
333排序
;;;
字符串排序
#include<stdio.h>
#include<string.h>?
void sort(char **p) {
? int i,j;
? char *temp;
? for (i=0; i<4; i++) {
? ? for (j=0; j<4-i; j++) {
? ? ? if (strcmp(*(p+j),*(p+j+1))>0) {
? ? ? ? temp=*(p+j);
? ? ? ? *(p+j)=*(p+j+1);
? ? ? ? *(p+j+1)=temp;
? ? ? }
? ? }
? }
}
int main() {
? int i;
? char str[5][20],*pstr[5];
? for(i=0; i<5; i++)
? {? ?pstr[i]=str[i];
? ? scanf("%s",str[i]);?
? }
? sort(pstr);
? for (i=0; i<5; i++)
? ? printf("%s ",pstr[i]);
? return 0;
}
數(shù)組反序輸出
#include<stdio.h>
#define N 10
void swap(int* a)
{
? int temp = 0;
? int i;
? for (i=0; i<N/2; i++)
? {
? ? temp = *(a+i);
? ? *(a+i) = *(a+N-1-i);
? ? *(a+N-1-i) = temp;
? }
}
int main()
{
? int i, a[N] = { 0 };
? for (i=0; i<N; i++)
? ? ?scanf("%d", a+i);
? swap(a);??
? for (i= 0; i<N; i++)
? ? printf("%d ", *(a+i));
? return 0;
指針方法排序
#include<stdio.h>
int main() {
? void sort(int *x,int n);
? int i,*p,a[10];
? p=a;
? for(; p<a+10; p++)
? ? scanf("%d",p);
? sort(a,10);
? for(p=a; p<a+10; p++)?
? ? printf("%d ",*p);
? return 0;
}
void sort(int *x,int n) {
? int i,j,t;
? for(i=0; i<n-1; i++)?
? ? for(j=0; j<n-i-1; j++)
? ? ? if(*(x+j)<*(x+j+1))
? ? ? {
? ? ? ? t=*(x+j);
? ? ? ? *(x+j)=*(x+j+1);
? ? ? ? *(x+j+1)=t;
? ? ? }
}
字符串按字母順序輸出
#include<stdio.h>
#include<string.h>
void fun(char *a[],int n)
{
?int i, j;
?char *t;
?for(i=0; i<n-1; i++)?
? for(j=i+1; j<n; j++)
? ? if( strcmp(*(a+i),*(a+j))>0)
? ? {? ?t=*(a+i);
? ? ? ? ? ? *(a+i)=*(a+j);
? ? ? ? ? ? *(a+j)=t;?
? ? ? ? }?
}
int main() {
?char *a[] = { "Follow me", "BASIC", "Great Wall", "FORTRAN", "Computer design" };
?int i;
?fun(a,5);
?for(i=0; i<5; i++)
? printf("%s\n",a[i]);
?return 0;
}
反序存放
#include <stdio.h>
#include <string.h>
void inverse(char str[] )
{
? char? t;
? int i, j;
? for (i=0, j= strlen(str); i<(strlen(str)/2); i++, j-- )
? {
? ? t = str[i];
? ? str[i]=str[j-1];
? ? str[j-1]=t;
? }
}
int main()
{
? char str[100];
? scanf("%s", str);
? inverse(str);
? printf("%s\n", str);
? return(0);
}
字符排序
#include <stdio.h>
#include <string.h>
void fun(char str[][10], int n)
{
?int i, j;
?char t[10];
?for (i=0; i<9; i++ )
? for (j=0; j<9-i; j++)
? ?if ( strcmp(str[j], str[j+1])>0)
? ?{
? ? strcpy(t, str[j]);
? ? strcpy(str[j], str[j+1]);
? ? strcpy(str[j+1], t);
? ?}
}
int main() {
?char str[][10] = {"abc", "edf", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz1", "234"};
?int i;
?fun(str, 10);
?for (i=0; i<10; i++ )
? ? printf("%s ", str[i]);
?return 0;
}
冒泡
#include<stdio.h>
#define N 10
int main()?
{ void sort(char str[]);
? char str[N]={'1','a','3','x','v','6','w','8','9','z'};
? int i;
? sort(str);? ?
? for (i=0; i <N; i++)
? ? printf("%c ",str[i]);
? printf("\n");
? return 0;
}
void sort(char str[]) {
? int i,j;
? char t;
? for(j=0; j<N-1; j++)
? ? for (i=0; i<N-j-1; i++)
? ? ? if(str[i]>str[i+1]) {
? ? ? ? t=str[i];
? ? ? ? str[i]=str[i+1];
? ? ? ? str[i+1]=t;
? ? ? }
}
;;;
444雜項(xiàng)
;;;
找出不及格
#include <stdio.h>
int fun(float *p,int n) {
? int i;
? for(i=0; i<n; i++)?
? ? if(*(p+i)< 60)?
? ? ? return 1;
? return 0;
}
int main() {
? float a[][4]= {{60,70,80,90},{56,89,67,88},{34,78,90,66}};
? int i,j;
? for(i=0; i<3; i++)?
? ? if(fun(a[i],4)){
? ? ? printf("No.%d score:",i);
? ? ? for(j=0; j<4; j++)
? ? ? ? printf("%.2f? ",a[i][j]);? //兩個(gè)空格
? ? ? printf("\n");?
? ? }
? return 0;
}
兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)
#include <stdio.h>
int main()?
{
? int hcf(int,int);
? int lcd(int,int);
? int u,v,h,l;
? scanf("%d %d",&u,&v);
? h=hcf(u,v);
? printf("hcf=%d\n",h);
? l=lcd(u,v);
? printf("lcd=%d",l);
? return 0;
}
int hcf(int m,int n) //最大公約數(shù)?
{?
? int t;
? t=m%n;
? while(t)
? {
? ? m=n;
? ? n=t;
? ? t=m%n;
? }?
? return n;?
}
int lcd(int m,int n) //最小公倍數(shù)?
{
? int s;
? s=m*n/hcf(m,n);
? return s;
}
年、月、日
#include? <stdio.h>
int main()?
{
? int sum_day(int month,int day);
? int leap(int year);
? int year,month,day,days;
? scanf("%d %d %d",&year,&month,&day);
? days=sum_day(month,day);? ? ? ? ? ? ??
? if(leap(year)&&month>=3)? ? ? ? ? ? ? ??
? ? days=days+1;
? printf("%d",days);
? return 0;
}
int sum_day(int month,int day) {? ? ??
? int day_tab[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
? int i;
? for (i=1; i <month; i++)
? ? day+=day_tab[i];? ? ?
? return(day);
}? ? ? ? ? ? ? ? ? ? ? ??
int leap(int year) {
? int leap;
? leap=year%4==0&&year%100!=0||year%400==0;
? return(leap);
}
判斷一個(gè)整數(shù)是否既是5又是7的整倍數(shù)
#include<stdio.h>
int main() {
? int fun(int);
? int a;
? scanf("%d",&a);
? if(fun(a))
? ? printf("yes");
? else
? ? printf("no");
? return 0;
}
int? fun(int x) {
? if(x%5==0&&x%7==0)?
? ? return 1;
? else??
? ? return 0;
}
多項(xiàng)式
#include <stdio.h>
int dxs(int x, int n) {
? if (n==0)?
? ? return 1;
? else if (n==1)?
? ? return x;
? else
? ? return (2*n-1)*dxs(x,n-1)-(n-1)*dxs(x,n-2)/n;
}
int main()
{
? int n, x;
? scanf("%d %d",&n, &x);
? printf("%d",dxs(x, n));
? return 0;
}
;;;
555函數(shù)與階乘
;;;
編寫函數(shù)int fun刪除a指向
#include<stdio.h>
int fun(char a[])
{
? int i,j=0,n=0;
? for(i=0;a[i]!='\0';i++)
? ? if(a[i]>='0'&&a[i]<='9')
? ? ? n++;
? ? else
? ? ? a[j++]=a[i];
? a[j]='\0';
? return n;
}
int main()
{
? char a[100];
? int n,i;
? gets(a);
? n=fun(a);
? printf("%d:%s",n,a);
? return 0;
}
通用函數(shù)avernum
#include<stdio.h>
#include<math.h>
double avernum(double x[],int n) {
? int i;
? double aver,s=0;
? for(i=0; i<n; i++)
? ? s=s+x[i];
? aver=s/100;
? return aver;
}
int main() {
? double x[100],aver,m=0;
? int i;
? for(i=0; i<100; i++)
? ? x[i]=200*(cos(i*0.875));
? aver=avernum(x,100);
? printf("aver=%.6lf\n",aver);
? for(i=0; i<100; i++)
? ? if(x[i]>aver)
? ? ? m++;
? printf("m=%.6lf",m);
? return 0;
}
字符比較函數(shù)
#include<stdio.h>
int strcmp(char *p,char *q) {
? for(;*p==*q;p++,q++)
? ? if (*p=='\0') return 0;
? return (*p-*q);
}
int main() {
? int m;
? char str1[20],str2[20];
? scanf("%s",str1);
? scanf("%s",str2);
? m=strcmp(str1,str2);
? printf("%d",m);
? return 0;
}
階乘
#include<stdio.h>
int fun(int i) {
? if(i==1)
? ? return 1;
? else
? ? return fun(i-1)*i;
}
int main() {
? int i,sum=0;
? for(i=1; i<=10; i++)
? ? sum+=fun(i);
? printf("%d",sum);
? return 0;
}
遞歸法求n!
#include<stdio.h>
double fun(int n){
? if(n==0 || n==1) return 1;
? else
? ? return n*fun(n-1);?
}
int main() {
int n;
scanf("%d",&n);
printf("%.0lf",fun(n));
return 0;
}
;;;