C语言典范编程

题目:有n个整数,使其前面各数次序向后移m个位置,末了m个数变成最前面的m个数
1,程序解析:
2,程序源代码:
main()
{
int number[20],n,m,i;
printf(“the total numbers is:”);
scanf(“%d”,&n);
printf(“back m:”);
scanf(“%d”,&m);
for(i=0;i<n-1;i++)
 scanf(“%d,”,&number[i]);
scanf(“%d”,&number[n-1]);
move(number,n,m);
for(i=0;i<n-1;i++)
 printf(“%d,”,number[i]);
printf(“%d”,number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
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);
}

【程序69】
题目:有n个人围成一圈,次序排号.从第一个人最早报数(从1到3报数),凡报到3的人退出
   圈子,问末了留下的是 原来第几号的那位.
1,程序解析:
2,程序源代码:
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf(“please input the total of numbers:”);
scanf(“%d”,&n);
p=num;
for(i=0;i<n;i++)
 (p+i)=i+1;
 i=0;
 k=0;
 m=0;
 while(m<n-1)
 {
 if(
(p+i)!=0) k++;
 if(k3)
 { *(p+i)=0;
 k=0;
 m++;
 }
i++;
if(i
n) i=0;
}
while(*p==0) p++;
printf(“%d is left\n”,*p);
}

【程序70】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,同时输出其长度.   
1,程序解析:
2,程序源代码:
main()
{
int len;
char *str[20];
printf(“please input a string:\n”);
scanf(“%s”,str);
len=length(str);
printf(“the string has %d characters.”,len);
}
length§
char *p;
{
int n;
n=0;
while(*p!=‘\0’)
{
 n++;
 p++;
}
return n;
}
【程序71】
题目:编写input()和output()函数输入,输出5个学生的信息记录.
1,程序解析:
2,程序源代码:
#define N 5
struct student
{ char num[6];
 char name[8];
 int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
 for(i=0;i<N;i++)
 { printf(“\n please input %d of %d\n”,i+1,N);
  printf(“num:”);
  scanf(“%s”,stu[i].num);
  printf(“name:”);
  scanf(“%s”,stu[i].name);
   for(j=0;j<3;j++)
   { printf(“score %d.”,j+1);
    scanf(“%d”,&stu[i].score[j]);
   }
  printf(“\n”);
 }
}
print(stu)
struct student stu[];
{ int i,j;
printf(“\nNo.Name Sco1 Sco2 Sco3\n”);
for(i=0;i<N;i++)
{ printf(“%-6s%-10s”,stu[i].num,stu[i].name);
 for(j=0;j<3;j++)
  printf(“%-8d”,stu[i].score[j]);
 printf(“\n”);
}
}
main()
{
 input();
 print();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cdbycd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值