1.找出最长的字符串
#include<stdio.h>
#include<string.h>
int main()
{
int i,t,m;
char sx[80],smlen[80];
printf("Input 5 strings:
");
scanf("%s",sx);
strcpy(smlen,sx);
for(i=1;i<5;i++){
scanf("%s",sx);
if(strlen(smlen)<strlen(sx)){
strcpy(smlen,sx);
}
}
printf("maxlen is %s
",smlen);
return 0;
}
2.分类统计字符个数
#include<stdio.h>
#include<string.h>
int main()
{
char q[100];
char *p;
int a=0,b=0,c=0,d=0,e=0,f=0,i;
p=q;
for(i=0;i<100;i++){
q[i]=0;
}
printf("请输入字符串:
");
gets(p);
for(i=0;i<100;i++)
{
if(*p==0){
e++;f++;
}
else{
f=0;
if(*p>64&&*p<91)
a++;
else if(*p>96&&*p<123)
b++;
else if(*p==32)
c++;
else if(*p>47&&*p<58)
d++;
else
e++;
p++;
}
}
e=e-f;
printf("大写字母有%d个
",a);
printf("小写字母有%d个
",b);
printf("空格有%d个
",c);
printf("数字有%d个
",d);
printf("其他字符有%d个
",e);
return 0;
}
3.学生信息管理系统
#include<stdio.h>
#include<string.h>
struct student{
int sno;
char name[20];
float grade1,grade2,grade3;
float avg;
};
int Count=0;
void new_stu(struct student stu[ ],int n);
void search_stu(struct student stu[ ],char *name);
void print_stu(struct student stu[ ]);
void avg_grade(struct student stu[ ]);
int main(void)
{
int choice,n;
char name[10];
struct student stu[50];
do{
printf("*****学生管理系统*****
");
printf(" 1:输入学生信息
");
printf(" 2:输出学生信息
");
printf(" 3:计算平均成绩
");
printf(" 4:按姓名查找学生基本信息
");
printf(" 0:退出
");
printf("请选择功能:");
scanf("%d",&choice);
switch(choice){
case 1:
printf("输入学生人数:");
scanf("%d",&n);
new_stu(stu,n);
break;
case 2:
print_stu(stu);
break;
case 3:
avg_grade(stu);
break;
case 4:
printf("请输入查询的联系人:");
scanf("%s",name);
search_stu(stu,name);
break;
case 0:
break;
}
}while(choice!=0);
printf("谢谢您使用该学生管理系统!!
");
return 0;
}
void print_stu( struct student stu[ ])
{
printf("学生信息管理系统里的学生为:
");
int i;
for(i=0;i<Count;i++)
{
printf("%d %s %.2f %.2f %.2f
",stu[i].sno,stu[i].name,stu[i].grade1,stu[i].grade2,stu[i].grade3);
}
}
void new_stu(struct student stu[ ],int n)
{
int i;
if(Count==50){
printf("系统已满!!
");
return ;
}
printf("请输入%d学生的学号:",n);
printf("
");
printf("请输入%d学生的姓名:",n);
printf("
");
printf("请输入%d学生的成绩1:",n);
printf("
");
printf("请输入%d学生的成绩2:",n);
printf("
");
printf("请输入%d学生的成绩3:",n);
printf("
");
for(i=Count;i<Count+n;i++){
scanf("%d%s%f%f%f",&stu[i].sno,stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
}
Count=Count+n;
}
void search_stu( struct student stu[],char *name)
{
int i,flag=0;
if(Count==0){
printf("系统是空的!!");
return ;
}
for(i=0;i<Count;i++)
if(strcmp(name,stu[i].name)==0) {
flag=1;
break;
}
if(flag){
printf("学号:%d 姓名:%s ",stu[i].sno,stu[i].name);
printf("成绩1:%.2f 成绩2:%.2f 成绩3:%.2f",stu[i].grade1,stu[i].grade2,stu[i].grade3);
}
else
printf("无此学生!!");
printf("
");
}
void avg_grade(struct student stu[ ])
{
int i;
if(Count==0){
printf("该系统无学生!!");
printf("
");
return;
}
printf("输入每个学生的平均成绩:
");
for(i=0;i<Count;i++){
stu[i].avg=(stu[i].grade1+stu[i].grade2+stu[i].grade3)/3;
printf("第%d个学生的平均成绩是;%.2f
",i+1,stu[i].avg);
}
}
4.冒泡法进行排序
#include<stdio.h>
#include<string.h>
void sort( int a[], int n )
{
int exchange,bound,i,j,t,k;
exchange=n;
i=1;
do{
bound=exchange;
exchange=0;
for(j=0;j<bound-1;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
exchange=j+1;
}
}
printf("第%d趟最后冒泡的位置exchange=%d",i,exchange);
i++;
for(k=0;k<n;k++)
printf("%d",a[k]);
printf("
");
}while(exchange!=0);
}
int main()
{
int i,a[50],n;
printf("需要输入个数的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
printf("排序后的结果为:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("
");
return 0;
}
5.报数游戏
#include<stdio.h>
void CountOff(int n,int m,int out[])
{
int i,num[n];
for(i=0;i<n;i++)
num[i]=i+1;
int total=0;
int Rcount=0;
int k=1;
while(total<n){
for(i=0;i<n;i++){
if(num[i]){
Rcount++;
if(Rcount%m==0){
out[total]=num[i];
num[i]=0;
total++;
}
}
}
printf("循环次数为:%d
",k);
int j;
for(j=0;j<total;j++)
printf("%3d",out[j]);
printf("
");
k++;
}
}
int main()
{
int count,i,m,n,No;
int outb[50];
printf("Enter all people number n:");
scanf("%d",&n);
printf("Enter m(m<n):");
scanf("%d",&m);
CountOff(n,m,outb);
printf("退出的顺序编号:");
for(i=0;i<n;i++)
printf("%3d",outb[i]);
printf("
");
}