日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言编程 新浪博客,[c语言编程]经典编程

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言编程 新浪博客,[c语言编程]经典编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用pi/4=1-1/3+1/5-1/7+...公式求PI的近似值,直到最后一項的絕對值小有10的-6次方為止。

#include

main()

{int i=-1;

float j,s=0.0;

for(j=1.0;fabs(1.0/j)>=1e-6;j=j+2.0)

{i=-i;

s+=i*1.0/j;}

s=s*4.0;

printf("%f\n",s);

}

輸入四個整數,要求按由小到大的順序輸出。

main()

{int a,b,c,d;

printf("請輸入4個整數:");

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

printf("\n a=%d, b=%d, c=%d, d=%d \n",a,b,c,d);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b,b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("排序結果如下:\n");

printf("%d %d %d %d\n",a,b,c,d);

}

譯密碼。為使電文保密,往往按一定規律將其轉換成密碼,收報人再按約定的規律將其譯回原文。例如,可以按以下規律電文變為密碼:

將字母A變成字母E,a變成e,即變成其后的第4個字母,W變成A,X變成B,Y變成C,Z變成D。字母按上述規律轉換,非字母字符不變。如“China!”轉換為“Glmre!”。輸入一行字符,要求輸出其相應的密碼。

#include

main()

{char a,b[100];

int i,j=0;

printf("qing shu ru,yi hui che jie shu:");

for(i=0;(b[i]=getchar())!='\n';i++)

{if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z'))

b[i]+=4;

if(b[i]>'Z'&&b[i]<='Z'+4||b[i]>'z')b[i]=b[i]-26;

}

while(b[j]!='\0')

{printf("%c",b[j]);

j++;}

}

輸入兩個正整數m和n,求其最大公約數和最小公倍數。

main()

{int p,r,n,m,temp;

printf("請輸入兩個正整數 n,m");

scanf("%d,%d",&n,&m);

if(n

{temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!=0)

{r=n%m;

n=m;

m=r;

}

printf("它們的最大公約數為:%d\n",n);

printf("它們的最小公倍數為:%d\n",p\n);

}

打印出所有的“水仙花數”。所謂“水仙花數”是指一個3位數,其各位數字的立方和等于該數本身。例如,153是一個“水仙花數”,因為153=1的立方+5的立方+3的立方。

main()

{int i,j,k,n;

printf("水仙花"數是:");

for(n=100;n<1000;n++)

{i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%4d",n);

}

printf("\n");

}

兩個乒乓球隊進行比賽,各出三人。甲隊為A、B、C三人,乙隊為X、Y、Z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單,A說他不和X比,C說他不和X、Z比。請編程序找出三對賽手的名單。

main()

{char i,j,k;

for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

if(i!=j)

for(k='X';k<='Z';k++)

if(i!=k&&j!=k)

if(i!='X'&&k!='X'&&k!='Z')

printf("A--%c\tB--%c\tC--%c\n",i,j,k);

}

用起泡法對10個數排序(由小到大)。

main()

{int a[10],t,i,j;

printf("qing shu ru 10 ge shu:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<9;i++)

for(j=0;j<9-i;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("%5d",a[i]);

}

輸入一行字符,統計其中有多少個單詞,單詞之間用空格分隔開。

#include

main()

{

char string[81];

int i,num=0,word=0;

char c;

gets(string);

for(i=0;(c=string[i])!='\0';i++)

if(c==' ')word=0;

else if(word==0)

{

word=1;

num++;

}

printf("there are %d wprd in the line.\n",num);

}

用選擇法對10個整數排序(從小到大)。

main()

{int i,j,temp,a[11];

printf("Enter data:\n");

for(i=1;i<=10;i++)

{printf("a[%d]=",i);

scanf("%d",&a[i]);

}

printf("\n");

for(i=1;i<=10;i++)

printf("%5d",a[i]);

printf("\n");

for(i=1;i<=9;i++)

{for(j=i+1;j<=10;j++)

if(a[i]>a[j])

{temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

printf("\nThe sorted numbers:\n");

for(i=1;i<=10;i++)

printf("%5d",a[i]);

}

將一個數組中的直按逆序重新存放。列如原來順序為:8、6、5、4、1。要求改為:1、4、5、6、8。

#define N 5

main()

{int a[N],i,temp;

printf("qing shu ru :");

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

{temp=a[i];

a[i]=a[N-i+1];

a[N-i+1]=temp;}

for(i=0;i

printf("%4d",a[i]);

printf("\n");

}

打印“打印魔方陣”,所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。要求打印1……平方的自然數構成的魔方陣。

main()

{int a[16][16],i,j,k,p,m,n;

p=1;

while(p==1)

{printf("Enter

n(n=1~15):");

scanf("%d",&n);

if((n!=0)&&(n<=15)&&(n%2!=0))

p=0;

}

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

a[i][j]=0;

j=n/2+1;

a[1][j]=1;

for(k=2;k<=n*n;k++)

{i=i-1;

j=j+1;;

if((i<1)&&(j>n))

{i=i+2;

j=j-1;

}

else

{if(i<1)i=n;

if(j>n)j=1;

}

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

a[i][j]=k;

else

{i=i+2;

j=j-1;

a[i][j]=k;

}

}

for(i=1;i<=n;i++)

{for(j=1;j<=n;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

有一個已排好序的數組,今輸入一個數,要求按原來排序的規律將它插入數組中(以兩兩交換的方式)。

main()

{int a[11]={1,4,6,13,16,19,28,40,100};

int temp1,temp2,number,end,i,j;

printf("array a:\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("Insert data:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

{for(i=0;i<10;i++)

{if(a[i]>number)

{temp1=a[i];

a[i]=number;

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

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

printf("Now,array a:\n");

for(i=0;i<11;i++)

printf("%6d",a[i]);

}

寫一函數,輸入一個4位數字,要求輸出這4個數字字符,但每兩個數字間有一個空格。如輸入1990,應輸出“1 9 9 0”。

main()

{char str[80];

void insert(char s[]);

printf("\nInput four digits:");

scanf("%s",str);

insert(str);

}

void insert(char str[])

{int i;

for(i=strlen(str);i>0;i--)

{str[2*i]=str[i];

str[2*i-1]='

';

}

printf("\nOutput:\n%s",str);

}

寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。

int alphabetic(char c)

{if((c>='a'&&c<='z')||(c>='A'&&c<='z'))

return(1);

else

return(0);

}

int longest(char string[])

{int len=0,i,length=0,flag=1,place=0,point;

for(i=0;i<=strlen(string);i++)

if(alphabetic(string[i]))

if(flag)

{point=i;

flag=0;

}

else

len++;

else

{flag=1;

if(len>=length)

{length=len;

place=point;

len=0;

}

}

return(place);

}

main()

{int

i;

char line[100];

printf("Input one line:\n");

gets(line);

printf("\nThe longest word is:");

for(i=longest(line);alphabetic(line[i]);i++)

printf("%c",line[i]);

printf("\n");

}

有15個數按由大到小的順序存放在一個數組中,輸入一個數,要求用折半查找法找出該數是數組中第幾個元素的值。如果該數不在數組中,則打印出“無此表”。

#include

#define N 15

main()

{int i,j,number,top,bott,mid,loca,a[N],flag=1,sign=1;

char c;

printf("Enter data:\n");

scanf("%d",&a[0]);

i=1;

while(i

{scanf("%d",&a[i]);

if(a[i]>=a[i-1])

i++;

else

printf("Enter this data again:");

}

printf("\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

while(flag)

{printf("Input number to look

for:");

scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((numbera[N-1]))

loca=-1;

while((sign==1)&&(top<=bott))

{mid=(bott+top)/2;

if(number==a[mid])

{loca=mid;

printf("Find %d,its position is %d\n",number,loca+1);

sign=0;

}

else if(number

bott=mid-1;

else

top=mid+1;

}

if(sign==1||loca==-1)

printf("%d is not found.\n",number);

printf("Continue or not(Y/N)?");

scanf(" %c",&c);

if(c=='N'||c=='n')

flag=0;

}

}

寫一函數,輸入一個十六進制數,輸出相應的十進制數。

#include

#define MAX 1000

main()

{char t[MAX],c;

int i,flag,flag1;

i=0;

flag=0;

flag1=1;

printf("\nInput a hex

number:");

while((c=getchar())!='\0'&&i

{if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')

{flag=1;

t[i++]=c;

}

else if(flag)

{t[i]='\0';

printf("decimal number %d:\n",htoi(t));

printf("Continue or not?");

c=getchar();

if(c=='N'||c=='n')

flag1=0;

else

{flag=0;

i=0;

printf("\nInput a hex number:");

}

}

}

}

htoi(char s[])

{int i,n;

n=0;

for(i=0;s[i]!='\0';i++)

{if(s[i]>='0'&&s[i]<='9')

n=n*16+s[i]-'0';

if(s[i]>='a'&&s[i]<='f')

n=n*16+s[i]-'a'+10;

if(s[i]>='A'&&s[i]<='F')

n=n*16+s[i]-'A'+10;

}

return(n);

}

10進制轉k進制(2<=k<=9)編程

給定程序功能是將十進制正整數m轉化為k進制(2<=k<=9)數的數字輸出。例如,若輸入8和2,則應輸出1000(即十進制數8轉化為二進制表示是1000)。

#include

void fun( int m, int k )

{

int aa[20], i;

for( i = 0; m; i++ ) {

aa[i] =?m%k;

m /= k;

}

for( ; i; i-- )

printf( "%d", aa[ i-1 ] );

}

main()

{

int b, n;

printf( "\nPlease enter a number and a base:\n" );

scanf(?"%d

%d", &n, &b );

fun( n, b );}

用遞歸法將一個整數n 轉換成字符串。例如輸入483,應輸出字符串“483”。n的位數不確定,可以是任意位數的整數。

#include

void convert(int n)

{int i;

if((i=n/10)!=0)

convert(i);

putchar(n%10+'0');

}

main()

{int number;

printf("\n Input an integer:");

scanf("%d",&number);

printf("Output:");

if(number<0)

{putchar('_');

number=-number;

}

convert(number);

}

有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面m個數,見圖10.3。寫一函數實現以上功能,在主函數中輸入n個整數,并輸出調整后的n個數。

main()

{int number[20],n,m,i;

printf("How many numbers?");

scanf("%d",&n);

printf("Input %d numbers:\n",n);

for(i=0;i

scanf("%d",&number[i]);

printf("How many place you want to move?");

scanf("%d",&m);

move(number,n,m);

printf("Now,they are:\n");

for(i=0;i

printf("%d",number[i]);

}

move(int array[20],int n,int m)

{int *p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0)

move(array,n,m);

}

有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。

main()

{int n,i,a[100],*p,tr=0;

printf("qing shu ru ren shu:");

scanf("%d",&n);

for(i=0;i

a[i]=i+1;

p=a;

while(tr

{

if(*p!=0)

{if(i==3)

{*p=0;

tr++;

}

i++;

}

p++;

if(p>a+n-1)

p=a;

}

for(i=0;i

if(a[i]!=0)

{printf("zui hou liu zai dui wu zhong de shi %d",a[i]);

break;}

}

寫一個函數,將一個3*3的矩陣轉置。

main()

{int a[3][3],*p,i,j;

printf("Input matrix:\n");

for(i=0;i<3;i++)

scanf("%d %d

%d",&a[i][0],&a[i][1],&a[i][2]);

p=&a[0][0];

move(p);

printf("Now,matrix:\n");

for(i=0;i<3;i++)

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

move(int *pointer)

{int i,j,t;

for(i=0;i<3;i++)

for(j=i;j<3;j++)

{t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

用指向指針的指針的方法對5個字符串排序并輸出。

#define LINEMAX 20

#include

#include

main()

{char *str[5],temp[LINEMAX],a[5][LINEMAX],**p;

int i,j;

printf("qing yi ci shu ru zi fu chuan:");

for(i=0;i<5;i++)

gets(a[i]);

for(i=0;i<5;i++)

str[i]=a[i];

p=str;

for(i=0;i<4;i++)

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

if(strcmp(*(p+i),*(p+j))>0)

{strcpy(temp,*(p+i));

strcpy(*(p+i),*(p+j));

strcpy(*(p+j),temp);}

for(i=0;i<5;i++)

{puts(a[i]);

printf("\n");

}

}

寫一個函數,對一個16位的二進制數取出它的奇數位(即從左邊起第1、3、5、...、15位)。

main()

{unsigned getbits(unsigned);

unsigned int a;

printf("\nInput an octal number:");

scanf("%o",&a);

printf(""result:%o\n",getbits(a));

}

unsigned getbits(unsigned value)

{int i,j,m,n;

unsigned int z,a,q;

z=0;

for(i=1;i<=15;i+=2)

{q=1;

for(j=1;j<=(16-i-1)/2;j++)

q=q*2;

a=value>>(16-i);

a=a<<15;

a=a>>15;

z=z+a*q;

}

return(z);

}

編一函數用來實現左右循環移位。

main()

{unsigned moveright(unsigned,int);

unsigned moveleft(unsigned,int);

unsigned a;

int n;

printf("\nInput an octal number:");

scanf("%o",&a);

printf("Input n: ");

scanf("%d",&n);

if(n>0)

{moveright(a,n);

printf("result:%o\n",moveright(a,n));

}

else

{n=-n;

moveleft(a,n);

printf("result:%o\n",moveleft(a,n));

}

}

unsigned moveright(unsigned value,int n)

{unsigned z;

z=(value>>n)|(value<

return(z);

}

unsigned moveleft(unsigned value,int n)

{unsigned z;

z=(value>>(16-n))|(value<

return(z);

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的c语言编程 新浪博客,[c语言编程]经典编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。