有一个含10个元素的数组,先输入9个按从小到大顺序排好的数据存入数组,再输入一个数, 要求按原来排序的规律将它插入数组中。
int a[10], i,j, x;
for(i=0; i<9;i++)
scanf("%d", &a[i]);
scanf("%d", &x);
for(i=0;i<9;i++) //到第一个大于x的a[i]
if(a[i]>x) break;
if(i!=9)
for(j=8; j>=i; j--) //从最后元素开始到a[i]
a[j+1]=a[j]; //向后移动一个位置
a[i]=x;
for(i=0; i<10;i++)
scanf("%d ", a[i]);
输入两个实数,用一个函数求出它们的平均。
#include <stdio.h>
int main()
{ float average(float x, float y);
float a,b,c;
scanf("%f,%f",&a,&b);
c=average(a,b);
printf("平均=%.3f\n",c);
return 0;
}
float average(float x,float y)
{ float z;
z=(x+y)/2;
return z;
}
写一个判断素数的函数
int isprime( int n) //判断n是否素数, 是返回1, 不是返回0
{ int i;
for(i=2; i<=n/2; i++)
if(n%i==0) break;
if( i>n/2) return 1;
else return 0;
}
int main()
{ int n;
scanf("%d", &n);
if( isprime(n) ) puts("prime");
else puts ("not prime");
return 0
}
用递归方法求n!
#include <stdio.h>
int main()
{int fac(int n);
int n; int y;
scanf("%d",&n);
y=fac(n);
printf("%d!=%d\n",n,y);
return 0;
}
int fac(int n)
{ int f;
if( n==1) f=1;
else f=fac(n-1)*n;
return f;
}
用函数交换两个变量的值
#include <stdio.h>
int main()
{void swap(int *p1,int *p2);
int a, b, *pt1, *pt2;
scanf(“%d,%d”,&a,&b);
pt1=&a; pt2=&b;
swap(pt1,pt2); //也可以swap( &a, &b);
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
void swap(int *p1,int *p2)
{ int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
编写一函数,计算两个实数的加减, 在主函数输出结果(不使用全局变量)
#include <stdio.h>
int main()
{ void function(float n1, float n2, float *p1, float *p2);
float x,y,a,b; //x,y存输入数据, a,b存函数的2个结果
scanf( "%f,%f", &x, &y );
function(x,y, &a, &b); //将a,b的地址(指针)传递过去
printf("x+y=%f,x-y=%f\n", a,b );
return 0;
}
//调用时, p1指向a, p2指向b
void function(float n1, float n2, float *p1, float *p2)
{ *p1=n1+n2; //存入p1所指向的变量中(主函数的a)
*p2=n1-n2; //存入p2所指向的变量中(主函数的b)
}
通过指针变量快速输入输出累加整型数组a的10个元素。
#include <stdio.h>
int main()
{ int *p, i, sum, a[10];
p=a; //p指向a[0] (一维数组名是指向首元素的指针常量)
printf(“enter 10 integer numbers:\n");
for(i=0;i<10;i++,p++) //p++使p指向下一个元素
scanf(“%d”,p); //p是a[i]的地址
p=a; //p重新指向a[0]
for(i=0;i<10;i++,p++)
printf(“%d\n”,*p); //p指向a[i], *p就是a[i]
for(p=a,sum=0,i=0; i<10; i++,p++)
sum+=*p;
printf(“sum=%d\n“, sum);
return 0;
}
用函数实现数组输入输出统计(指针法)
#include <stdio.h>
int main()
{ void input( float *p); //函数声明
void output( float *p); //函数声明
float average( float *p); //函数声明
float score[10], aver;
input(score); //输入成绩, 实参是数组名
output( score ); //输出成绩, 实参是数组名
aver=average(score); //平均成绩, 实参是数组名
printf("aver=%f\n", aver);
return 0;
}
void input(float *p) //指针法 形参定义为指针变量, p指向score[0]
{ int i;
for(i=0; i<10; i++, p++) scanf("%f", p);
}
字符串长度排序c语言void output(float *p) //指针法 形参定义为指针变量, p指向score[0]
{ int i;
for(i=0; i<10; i++, p++) printf("%f\n", *p);
}
float average(float *p) //指针法 形参定义为指针变量
{ int i; float sum=0;
for(i=0; i<10; i++,p++) sum+=*p;
return sum/10;
}
用函数调用实现字符串的复制。(用字符指针变量作函数形参)
int main()
{void copy_string(char *to, char *from);
char *a=“I am a teacher”, b[20]; //a串用字符指针形式
copy_string(b, a);
printf(“a=%s\nb=%s\n”,a,b);
return 0;
}
void copy_string(char *to char *from)
{ for( ;*from!='\0'; from++,to++)
{ *to=*from; }
*to='\0';
}
定义一个学生结构变量,输入,输出
#include <stdio.h>
int main( )
{ struct student
{ int num;
char name[20];
};
struct student s;
printf("enter num name:");
scanf("%d%s", &s.num, s.name);
printf("num=%d name=%s\n", s.num, s.name);
return 0;
}
定义一个学生结构数组,输入,输出
int main()
{ struct student { int num; char name[20]; };
struct student s[10]; int i; //s的每个元素都是结构体变量
for(i=0; i<10; i++)
{ printf("enter num name:");
scanf("%d%s", &s[i].num, s[i].name);
}
for(i=0; i<10; i++)
{ printf("num=%d name=%s\n", s[i].num, s[i].name);
}
}
用函数实现结构体变量的输入,输出
#include <stdio.h>
//定义全局结构名
struct student
{ int num;
char name[20];
};
int main()
{struct student s;
void input( struct student *p);
void display( struct student s);
input( &s);//实参是指针
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论