5.实现指定函数swap
#include<stdio.h>
void swap(int*array,int n)
{
int mid;
if(array!=NULL&&n>0)
{
mid=array[0];
array[0]=array[n-1];
array[n-1]=mid;
}
else
printf("error");
}
int main()
{
void swap(int*array,int n);
int a[5],i;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
swap(a,5);
return 0;
}
7. 实现指定函数printSize
#include<stdio.h>
void printSize(int * first,int * last)
{
if(first==NULL||last==NULL||last<first)
printf("error");
else
{
int z=last-first+1;
int a=0,i;
for(i=0;i<z;i++)
a=a+sizeof(*first);
first++;
printf("%d,%d\n",z,a);
}
}
8.swap
#include<stdio.h>
struct Person
{
int age;
int height;
};
void swap(Person * array,int n);
void swap(Person * array,int n)
{
if(array==NULL||n<1)
{printf("error");}
else
{
int a;
a=array[0].height;array[0].height=array[n-1].height;array[n-1].height=a;
}
}
15.求最小公倍数和最大公约数
#include<stdio.h>
int main()
{
int x,y,k,max ;
scanf("%d %d",&x,&y);
if(x>=y)
{max=x;
}
else
{max=y;
}
for(k=max;;k--){
if(x%k==0&&y%k==0)
break;
}
printf("%d,%d",k,x*y/k);
return 0;
}
16.求π的值
#include<stdio.h>
int main()
{
double b,n,a,c;
a=c=1.0;
n=0;
scanf("%lf",&b);
while(n>=0)
{
n=n+a;
if((a*2)<b)
break;
a=a*c/(2*c+1);
c++;
}
printf("%lf",n*2);
return 0;
}
18.素数
#include<stdio.h>
#include<math.h>
int main()
{
int a,b;
scanf("%d",&b);
if(b<=3)
{
printf("error");
scanf("%d",&b);
}
for(a=2;a<b;a++)
if(b%a==0)
printf("no");
else printf("yes");
return 0;
19. 求1-n的阶乘之和
#include<stdio.h>
int main(){
int n,m,t;
m=1,t=0;
scanf("%d",&n);
if(n<1||n>10){
printf("error");
}
else{
for(int i=1;i<=n;i++){
m=m*i;
t=t+m;
}
printf("%d\n",t);
}
return 0;
}
35.insert
#include <stdio.h>
#include <string.h>
void insert(char * s1,char * s2, int n)
{
char a[255];
int i, j, k, len1, len2;
if(n<0 || s1==NULL || s2==NULL)
{
printf("error\n");
return;
}
len1 = 0;
while(s1[len1] != ' ')
{
len1++;
}
len2 = 0;
while(s2[len2] != ' ')
{
len2++;
}
if(n>len1)
{
printf("error\n");
return;
}
for(i=0; i<n; i++)
{
a[i] = s1[i];
}
for(j=0; j<len2; j++)
{
a[n+j] = s2[j];
}
for(j=i; j<len1; j++)
{
a[len2+j] = s1[j];
}
for(k=0; k<len1+len2; k++)
{
s1[k] = a[k];
}
s1[k] = ' ';
k++;
for(;k<strlen(s1); k++)
{
s1[k] = 0;
}
}
36.del
#include<stdio.h>
void del(char * s,int n,int len)
{
if(n<0||s==NULL||len<0)
{
printf("error");
return;
}
int i,j;
for(i=0;i<n;i++)
if(s[i]==' ')
{
printf("error");
return;
}
for(j=n;j<n+len;j++)
if(s[j]==' ')
{
printf("error");
return;
}
for(i=n;s[i+len]!=' ';i++)
s[i]=s[i+len];
for(j=i;j<i+len;j++)
s[j]=' ';
}
37.删除字符串中连续相同字符
#include<stdio.h>
int main(){
char a[50];char a[50]char*p=a;gets(a)while(*p!=)
char *p=a;
gets(a);
while(*p!='\0'){
if(*p==*(p+1)&&!((*p>='0'&&*p<='9')||(*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))){
p++;
}
else{
printf("%c",*p);%c,*p
p++;
}
}
return 0;
}
40.逆序
#include<stdio.h>
void * reversememcpy ( void * destination, const void * source, int num )
{
char *des=(char *)destination;
char *sou=(char *)source;
int i;
if (num<0 || source==0|| destination==0)
{ printf("error");return 0;}
if(((char *)destination+num>=(char *)source) && (char *)destination<=(char *)source)
{ printf("error");return 0;}
if(((char *)destination-num<=(char *)source) && (char *)destination>=(char *)source)
{ printf("error");return 0;}
for (i=0;num>0;i++)
{
*((char *)destination+i)=*((char *)source+num-1);num--;
}
return (destination);y
}
41.对结构体进行排序
#include<stdio.h>
struct Person{
int no;
int age;
int height;
}temp;
void sort(Person * array,int n){
int i=0,j=0;
if(n<=0||array==NULL){
printf("error");
}
else{
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(array[j].no>array[j+1].no){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
else {
if(array[j].no==array[j+1].no&&array[j].age>array[j+1].age){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
else{
if(array[j].age==array[j+1].age&&array[j].height>array[j+1].height){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
}
}
}
48.冒泡排序
#include<stdio.h>
int main(void)
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf(" ");
}
50.颠倒输出
#include<stdio.h>
void main()
{
char c,s[50];
int i,j=0;
while((s[j++]=getchar())!='\n');
for(i=0,j-=2;i<j;i++,j--)
{
c=s[j];
s[j]=s[i];
s[i]=c;
}
for(i=0;s[i]!='\n';i++)
printf("%c",s[i]);
}
52.将输入字符串变为大写
#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
char *p=a;
gets(a);
while(*p!='\0'){
if(*p>='a'&&*p<='z'){
*p=*p-32;
printf("%c",*p);
p++;
}
else{
printf("%c",*p);
p++;
}
}
printf("\n");
return 0;
}
53.实现冒泡排序的函数
void bubbleSort(int data[50],int n)
{
int a,b,c;
for(a=0;a<50;a++)
{
for(b=a+1;b<50;b++)
{
if(data[a]<data[b])
{
c=data[a];
data[a]=data[b];
data[b]=data[a];
}
}
}
}
57.统计字符串个数
#include<stdio.h>
int CalString(char *str){
int p=0;
for(;*str!='\0';str++){
if(*str>='0'&&*str<='9'||*str>='a'&&*str<='z'||*str>='A'&&*str<='Z'){
p=p;
}
else{
p++;
}
}
return p;
}
int main()
{
char a[100];
gets(a);
int p=CalString(a);
printf("%d",p);
return 0;
}
89.计算加减表达式
#include<stdio.h>
int main(){
float digit;
int i=0;
char sig;
scanf("%f",&digit);
float result=digit;
scanf("%c",&sig);
if(sig!='+'&&sig!='-'&&sig!=';'||sig=='\0'){
printf("error");
return 0;
}
while(sig!=';'){
scanf("%f",&digit);
if(sig=='+'){
result=result+digit;
}
if(sig=='-'){
result=result-digit;
}
scanf("%c",&sig);
if(sig!='+'&&sig!='-'&&sig!=';'||sig=='\0'){
i++;
break;
}
}
if(i==0){
printf("%.6f",result);
}
if(i!=0){
printf("error");
}
return 0;
}
91.计算e的x次方
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,x,d;
int n;
double e;
a=b=c=e=1;
scanf("%lf %d",&x,&n);
if(n<0)
printf("error");
else
{
while(a<=n)
{
b=b*a;
a++;
d=pow(x,c);
e=d/b+e;
c++;
}
printf("%.6lf",e);
}
return 0;
}
92. #include<stdio.h>
#include<math.h>
int main()
{
unsigned int m,k=0;
scanf("%u",&m);
while(pow((float)2,(float)k)<=m)
k++;
printf("%u\n",k-1);
return 0;
}
107. 数组中的值逆序存放
#include<stdio.h>
int ReverseArray(int array[], int size)
{
int n,m;
if((size<=0)||(array==NULL))
return 0;
else
{
for(n=0;n<size-n;n++)
{
m=array[size-n-1];
array[size-n-1]=array[n];
array[n]=m;
}
return 1;
}
}
109. 统计一行字符的单词数
#include<stdio.h>
#include<string.h>
int main()
{
char s[256];
int num=0,i,word=0;
gets(s);
int a=strlen(s);
for(i=0;i<a;i++)
{
if(s[i]==' ')
{
word=0;
}
else
{
if(word==0)
{
num++;
word=1;
}
else
{
word=1;
}
}
}
printf("%d\n",num);
return 0;
}
110.学生管理系统
#include <stdio.h>
#include <string.h>
struct Node{
char name[25];
int f;
char str[10];
double h;
int l,r;
}P[100];
int main(){
int n;
scanf("%d",&n);
int C_max=0,C_min=100,C_sum=0;
int Ca_max=0,Ca_min=100,Ca_sum=0;
for (int i=0;i<n;i++){
scanf("%s %d %s %lf %d %d",P[i].name,&P[i].f,P[i].str,&P[i].h,&P[i].l,&P[i].r);
if (P[i].l>C_max) C_max=P[i].l;
if (P[i].l<C_min) C_min=P[i].l;
if (P[i].r>Ca_max) Ca_max=P[i].r;
if (P[i].r<Ca_min) Ca_min=P[i].r;
C_sum+=P[i].l;
Ca_sum+=P[i].r;
}
printf("C_average:%d\n",C_sum/n);
printf("C_max:%d\n",C_max);
for (int i=0;i<n;i++){
if (P[i].l==C_max){
printf("%s %d %s %.2f %d %d\n",P[i].name,P[i].f,P[i].str,P[i].h,P[i].l,P[i].r);
}
}
printf("C_min:%d\n",C_min);
printf("Calculus_average:%d\n",Ca_sum/n);
printf("Calculus_max:%d\n",Ca_max);
for (int i=0;i<n;i++){
if (P[i].r==Ca_max){
printf("%s %d %s %.2f %d %d\n",P[i].name,P[i].f,P[i].str,P[i].h,P[i].l,P[i].r);
}
}
printf("Calculus_min:%d\n",Ca_min);
return 0;
}
111.检查字符串1是否包括字符串2
#include<stdio.h>
#include<stdlib.h>
int main()
{
char s1[50],s2[20],*p1,*p2;
int locat[10],posit=0,i=0,len2,j;
gets(s1);
gets(s2);
p1=s1;
p2=s2;
for(j=0;*p2!='\0';j++,p2++)
len2=j+1;
p2=s2;
do
{
if(*p1!=*p2)
{
p1++;
posit++;
}
else
{
while((*p1==*p2)&&(*p2!='\0'))
{
p1++;
p2++;
posit++;
}
if(*p2=='\0')
{
locat[i]=posit-len2;
i++;
}
}
p2=s2;
}while(*p1!='\0');
if(i<1)
printf("NO\n");
else
{
printf("%dtimes,",i);
for(int j=0;j<i-1;j++){
printf("%d,",locat[j]);
}
printf("%d",locat[i-1]);
}
return 0;
}
112.统计字母和数字个数
#include<stdio.h>
int main(){
char a[100];
char*p=a;
gets(a);
int i=0,j=0;
while(*p!='\0'){
if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z'){
i++;
}
if(*p>='0'&&*p<='9'){
j++;
}
p++;
}
printf("letters:%d,digits:%d",i,j);
return 0;
}
115.二维数组的行列变换
#include <stdio.h>
void tran(int array[5][3], int out_array[3][5])
{
int i,j;
if(array==NULL||out_array==NULL)
printf("error");
else for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
out_array[i][j]=array[j][i];
}
}
}
114.随机数置换
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
extern int RandInt(int i,int j);
void RandomPermutation1(int n)
{
int A[100];
int i, j, flag, temp;
if(n<=0)
{
printf("error");
return;
}
i = 0;
while(i < n)
{
flag = 0;
temp = RandInt(1, n);
for(j=0; j<i; j++)
{
if(A[j] == temp)
{
flag = 1;
break;
}
}
if(!flag)
{
A[i] = temp;
i++;
}
}
for(i=0; i<n; i++)
printf("%d,", A[i]);
printf("0\n");
}
void RandomPermutation2(int n)
{
int A[100], Used[101] = {0};
int i, j, temp;
if(n<=0)
{
printf("error");
return;
}
i = 0;
while(i < n)
{
temp = RandInt(1, n);
if(Used[temp])
{
continue;
}
Used[temp] = 1;
A[i] = temp;
i++;
}
for(i=0; i<n; i++)
printf("%d,", A[i]);
printf("0\n");
}
void swap(int* a,int* b)
{
int t;
t= *a;
*a = *b;
*b = t;
}
void RandomPermutation3(int n)
{
int A[100], i;
if(n<=0)
{
printf("error");
return;
}
for(i = 0; i < n; i++)
{
A[i] = i+1;
}
for(i = 1; i < n; i++)
{
swap(&A[i], &A[RandInt(0,i)]);
}
for(i = 0; i < n; i++)
printf("%d,", A[i]);
printf("0\n");
117. 编写函数处理相同字符
#include<stdio.h>
#include<string.h>
void del(char *str){
int len,i,j;
len=strlen(str);
for(i=1;i<len;i++){
if(*(str+i)>='a'&&*(str+i)<='z'||*(str+i)>='A'&&*(str+i)<='Z'||*(str+i)>='0'&&*(str+i)<='9'){
}
else{
if(*(str+i-1)==*(str+i)){
for(j=i;j<len;j++){
*(str+j)=*(str+j+1);
}
i--;
len=len-1;
}
}
}
}
int main(){
char a[100];
gets(a);
char *str=a;
del(str);
for(;*str!='\0';str++){
printf("%c",*str);
}
return 0;
}
118.水仙花
#include<stdio.h>
int main()
{
int find(int n);
int m;
scanf("%d",&m);
return 0;
}
int find(int n)
{
if(n<=99||n>=1000)
return 0;
else
{
int a,b,c,i,d;
for(d=0,i=100;i<=n;i++)
{
a=(int)(i/100);
c=i%10;
b=(i-100*a-c)/10;
if(i==a*a*a+c*c*c+b*b*b)
{
d++;
}
}
return d;
}
}
121. 实现函数逆序输出一组数据
#include<stdio.h>
void main()
{
void isort(int a[], int n);
int a[100],b,n;
scanf("%d",&n);
for(b=0;b<n;b++)
scanf("%d",&a[b]);
isort(a,n);
}
void isort(int a[], int n)
{
int i;
for(i=n-1;i>0;i--)
{
printf("%d,",a[i]);
}
printf("%d",a[0]);
}
132.‘/0’转义
#include<stdio.h>
#include<string.h>
int main(){
char s1[100];
char s2[100];
gets(s1);
int len,i,j;
len=strlen(s1);
for(i=0;i<len;i++){
s2[i]=s1[i];
}
s1[i]='\0';
for(j=0;j<i;j++){
printf("%c",s2[j]);
}
printf("\\0");
return 0;
}
133.矩阵乘法
#include<stdio.h>
void Matrix_Mul(int a[3][2],int b[2][4]){
int i,j,p,q;
int mul[3][4];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
mul[i][j]=(a[i][0]*b[0][j]+(a[i][1]*b[1][j]));
}
}
for(p=0;p<3;p++){
for(q=0;q<3;q++){
printf("%d ",mul[p][q]);
}
printf("%d \n",mul[p][q]);
}
return;
}
int main(){
int a[3][2]={{1,2},{3,4},{5,6}};
int b[2][4]={{1,0,1,1},{0,1,0,1}};
int mul[3][4];
Matrix_Mul(a,b);
return 0;
}
134.统计字符串出现个数
#include<stdio.h>
#include<string.h>
int SubStrNum(char *str, char *substr){
int len,i=0,j=0,sum=0;
len=strlen(substr);
while(*(str+i)!='\0'){
while(*(str+i)==*(substr+j)&&*(substr+j)!='\0'&&*(str+i)!='\0'){
i++;
j++;
}
if(j==len){
sum++;
j=0;
}
else{
j=0;
i++;
}
}
printf("match times=%d",sum);
return 0;
}
int main(){
char a[100];
char b[100];
gets(a);
gets(b);
char *str=a;
char *substr=b;
SubStrNum(str,substr);
return 0;
}
135.计算大整数的差
#include<stdio.h>
#include<string.h>
int main(){
char a[100];
char b[100];
char c[100];
scanf("%s",&a);
scanf("%s",&b);
char *x=a;
char *y=b;
int len1,len2,lenmax,lenmin,i,j,temp,itemp;
len1=strlen(x);
len2=strlen(y);
if(len1>len2){
temp=1;
}
if(len1<len2){
temp=-1;
}
if(len1==len2){
temp=0;
}
if(temp==0){
for(i=0;i<=len1-1&&temp==0;i++){
if(a[i]>b[i]){
temp=1;
}
if(a[i]<b[i]){
temp=-1;
}
if(a[i]==b[i]){
temp=0;
}
}
}
if(temp==1){
lenmax=len1;
lenmin=len2;
for(i=lenmax-1,j=lenmin-1;j>=0;i--,j--){
c[i]=a[i]-b[j];
}
for(i=lenmax-lenmin-1;i>=0;i--){
c[i]=a[i];
}
printf("+");
for(i=lenmax-1;i>=lenmax-lenmin-1;i--){
if(c[i]<0){
c[i]=c[i]+10;
if(i>0){
c[i-1]=c[i-1]-1;
}
}
}
for(i=0;i<=lenmax-lenmin-1;i++){
printf("%c",c[i]);
}
for(i=lenmax-lenmin;i<=lenmax-1;i++){
printf("%c",c[i]=c[i]+48);
}
}
if(temp==-1){
lenmax=len2;
lenmin=len1;
for(i=lenmax-1,j=lenmin-1;j>=0;i--,j--){
c[i]=b[i]-a[j];
}
for(i=lenmax-lenmin-1;i>=0;i--){
c[i]=b[i];
}
printf("-");
for(i=lenmax-1;i>=lenmax-lenmin-1;i--){
if(c[i]<0){
c[i]=c[i]+10;
if(i>0){
c[i-1]=c[i-1]-1;
}
}
}
for(i=0;i<=lenmax-lenmin-1;i++){
printf("%c",c[i]);
}
for(i=lenmax-lenmin;i<=lenmax-1;i++){
printf("%c",c[i]=c[i]+48);
}
}
if(temp==0){
printf("0");
}
return 0;
}
136.输出类x和y
#include<iostream>
#include<cmath>
using namespace std;
class Location{
private:
int X,Y;
public:
void init(int initX,int initY){
X=initX;
Y=initY;
}
int GetX(){
return X;
}
int GetY(){
return Y;
}
};
int main(){
Location A1;
A1.init(20,90);
Location &rA1=A1;
cout<<rA1.GetX()<<rA1.GetY();
return 0;
}
137.实现三角形类
#include<iostream>
#include<cmath>
using namespace std;
class Ctriangle{
private:
double sa;
double sb;
double sc;
public:
Ctriangle(double a, double b, double c){
sa=a;
sb=b;
sc=c;
}
double GetPerimeter(){
return sa+sb+sc;
}
double Getarea(){
double
p=GetPerimeter()/2;
p=p*(p-sa)*(p-sb)*(p-sc);
return sqrt(p);
}
void display(){
cout<<"Ctriangle:a="<<sa<<",b="<<sb<<",c="<<sc<<endl;
}
};
int main(){
double a,b,c;
cin>>a>>b>>c;
Ctriangle T(a,b,c);
T.display();
cout<<"Perimeter:"<<T.GetPerimeter()<<endl;
cout<<"Area:"<<T.Getarea()<<endl;
return 0;
}
138.实现point类
#include<iostream>
#include<cmath>
using namespace std;
class Point{
private:
double x;
double y;
public:
Point(double x,double y){
this->x=x;
this->y=y;
}
double Distance(const Point &p){
x-=p.x;
y-=p.y;
return sqrt(x*x+y*y);
}
};
int main(){
double a,b,c,d;
cin>>a>>b>>c>>d;
Point A(a,b),B(c,d);
cout<<A.Distance(B)<<endl;
return 0;
}
159填空base
#include <iostream>
using namespace std;
class base{
public:
virtual int func(){return 0;}
};
class derived:public base{
public:
int a,b,c;
void setValue(int x,int y,int z){a =x;b=y;c= z;}
int func(){return (a+b)*c;}
};
int main(){
base b;
derived d;
int x,y,z;
cin>>x>>y>>z;
cout<<b.func()<<",";
d.setValue(x,y,z);
cout<<d.func()<<",";
base& pb = d;
cout <<pb.func()<<endl;
return 0;
}
161填空题04
#include <iostream>
using namespace std;
class Base{
public:
virtual void fun(){
cout<<1<<endl;
}
};
class Derived:public Base{
public:
void fun(){cout<<2<<endl;}
};
int main(){
Base *p = new Derived;
p->fun();
delete p;
return 0;
}
164完成location
#include <iostream>
using namespace std;
class Location{
public:
Location(int xx,int yy){
x =xx;
y =yy;
}
Location &operator +(Location &offset);
Location &operator -(Location &offset);
int getX(){return x;}
int getY(){return y;}
private:
int x;
int y;
};
Location &Location::operator +(Location &offset){
this->x+=offset.x;
this->y+=offset.y;
return *this;
}
Location &Location::operator -(Location &offset){
this->x-=offset.x;
this->y-=offset.y;
return *this;
}
167抽象类shape
n&(n-1)==0
#include <iostream>
#define PI 3.14
using namespace std;
class Shape{
public:
Shape(){}
~Shape(){}
virtual double GetArea()=0;
virtual double GetPerimeter()=0;
static Shape* createRectangle(double length,double width);
static Shape* createCircle(double radius);
};
class Rectangle:public Shape
{
private:
int a,b;
public:
Rectangle(double l,double w)
{
a=l,b=w;
}
double GetArea()
{
return a*b;
}
double GetPerimeter()
{
return 2*(a+b);
}
};
class Circle:public Shape
{
private:
int r0;
public:
Circle(double r)
{
r0=r;
}
double GetArea()
{
return PI*r0*r0;
}
double GetPerimeter()
{
return 2*PI*r0;
}
};
Shape * Shape::createRectangle(double l,double w){return new Rectangle(l,w);}
Shape * Shape::createCircle(double r){return new Circle(r);}
187.百钱百鸡
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,z;
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{for(z=0;z<=99;z+=3)
{if((5*x+3*y+z/3==100)&&(x+y+z==100&&z%3==0))
printf("%d,%d,%d,",x,y,z);}
}
}
return 0;
}
188.猴子摘桃
#include<stdio.h>
int main(void)
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,sum=0;
a=(1+1)*2;
b=(a+1)*2;
c=(b+1)*2;
d=(c+1)*2;
e=(d+1)*2;
f=(e+1)*2;
g=(f+1)*2;
h=(g+1)*2;
i=(h+1)*2;
sum=i;
printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
a,b,c,d,e,f,g,h,i,sum);
return 0;
}
189.折半查找upper_bound()
sort(a+1,a+1+n)
#include<stdio.h>
int main(void)
{
int n=0,m,i,start,mid,end,number,a[100]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d,",&a[i]);
scanf("%d",&number);
start=0;
end=n-1;
while(number==a[n-1])
{
printf("%d",n);
goto there;
}
while(number==a[0])
{
printf("%d",1);
goto there;
}
while(start+1<end)
{
mid=(end+start)/2;
if(number>a[mid])
start=mid;
else if(number<a[mid])
end=mid;
else
{
printf("%d",mid+1);
break;
}
}
there:return 0;
}
230. 指针练习之最值问题
#include<stdio.h>
int main()
{
int i,n,a[100],p1,p2,max,min,*p;
scanf("%d",&n);
if(n<=0)
printf("error");
else
{
p=a;
for(i=0;i<n;i++)
scanf("%d",p+i);
max=a[0];
min=a[0];
p1=1;
p2=1;
for(i=1;i<n;i++)
{
if(max<*(p+i))
{
max=*(p+i);
p1=i+1;
}
}
for(i=1;i<n;i++)
{
if(min>*(p+i))
{
min=*(p+i);
p2=i+1;
}
}
}
printf("max:%d,position:%d\n",max,p1);
printf("min:%d,position:%d\n",min,p2);
return 0;
}
231. 指针练习之学号转换
#include<stdio.h>
#include<string.h>
int fun(const char *p, int result[])
{
int num[13]={0},i;
if(p==NULL||strlen(p)!=13)
return 0;
else
{
while(*p!='\0')
{
if((*p)>='0'&&(*p)<='9');
else
return 0;
p++;
}
for(i=0;i<13;i++)
num[i]=(int)(*((p-13)+i)-'0');
result[0]=num[0]*1000+num[1]*100+num[2]*10+num[3];
result[1]=num[4]*10+num[5];
result[2]=num[6]*1000+num[7]*100+num[8]*10+num[9];
result[3]=num[10]*100+num[11]*10+num[12];
return 1;
}
}
232.字符串拷贝
#include<stdio.h>
int main()
{
char a[100]={'\0'},d[100]={'\0'},*b;
int i=0,c=0;
scanf("%s",a);
b=a;
while(*(b+1)!='\0'&&*(b+2)!='\0')
{
d[i]=*b;
d[i+1]=*(b+1);
d[i+2]='*';
b+=2;
i+=3;
c+=2;
}
if(a[c+1]!='\0')
printf("%s%c%c\n",d,a[c],a[c+1]);
else
printf("%s%c\n",d,a[c]);
return 0;
}
233.
#include<stdio.h>
extern int max_val, min_val, ave_val;
extern int cal( int *pData, int iLen )
{
int i,sum=0;
if(iLen<0||pData==NULL)
{return 0;}
max_val=pData[0];
for(i=0;i<iLen;i++)
{
if(max_val<pData[i])
{max_val=pData[i];}
}
min_val=pData[0];
for(i=0;i<iLen;i++)
{
if(min_val>pData[i])
{min_val=pData[i];}
}
for(i=0;i<iLen;i++)
{
sum=sum+pData[i];
}
ave_val=sum/iLen;
return 1;
234.宏定义和使用
#include<stdio.h>
#define MAX(a,b) (a>b)? a : b
int main(void)
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
a=MAX(a,b);
c=MAX(a,c);
printf("%d",c);
}
235.动态内存分部
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n,i,j,temp;
scanf("%d",&n);
int *array=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{scanf("%d",array+i);}
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
{
if(array[i]>array[i+1])
{
temp=array[i+1];
array[i+1]=array[i];
array[i]=temp;
}
}
}
for(i=0;i<n-1;i++)
{printf("%d,",array[i]);}
printf("%d\n",array[n-1]);
return 0;
}
275.证明哥德巴赫猜想
#include<stdio.h>
#include<math.h>
int main(){
int n,x,fir,i,s=1,sec;
scanf("%d",&n);
if(n>=4&&n<2000&&n%2==0){
if(n==4){
printf("2 2 ");
}
else{
for(x=2;x<=(n/2);x++){
fir=x;
for(i=2;i<=(sqrt((float)fir)+1);i++){
if(fir%i==0){
fir=0;
}
}
sec=n-x;
for(i=2;i<=(sqrt((float)sec)+1);i++){
if(sec%i==0){
sec=0;
}
}
if(fir!=0&&sec!=0){
printf("%d %d ",fir,sec);
}
}}
}
else{
printf("error");
}
return 0;
}
码图系统期末复习资料
最新推荐文章于 2024-10-21 20:51:50 发布