111222333

本文介绍了多种编程问题的解决方案,包括字符串的简单加密算法实现,数学序列的计算如交错序列求和,数组元素的逆序显示,数组内部分段反转,单词计数,平均分计算,最大最小值及其位置查找,数组排序以及数字的位数反转。这些例子展示了基础编程技巧在处理各种数据操作时的应用。
摘要由CSDN通过智能技术生成

111222333

1.在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。
输入
输入一行,包含一个字符串,长度小于80个字符。
输出
输出每行字符串的加密字符串。
#include<stdio.h>
  int main()
  {char a[10001];
  int i;
      gets(a);
      int l=strlen(a);
     for(i=0;i<l;i++)
     {
         if(a[i]=='z')a[i]='a';
         else if(a[i]=='Z')a[i]='A';
         else if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
         a[i]=a[i]+1;
     }
     puts(a);
     return 0;
 }
编写程序,计算:m=1-2+3-4+····+(-)n。
输入一个正整数n(<1000)。
输出对应的m。
样例输入
10
样例输出
-5
#include<stdio.h>
int main()
{int m,i,n,k=1;
scanf("%d",&n);
m=0;
i=1;
while(i<=n)
{m=m+i*k;
i++;
k=-k;
}
printf("%d\n",m);
return 0;
}
从键盘输入10个整数存放在数组中,再逆序显示这10个数。 
输入
从键盘输入10个整数。 
输出
逆序显示这10个数。数据间以空格间隔,但最后一个数据后面没有空格,直接换行。 
样例输入
6 7 9 0 -6 16 18 -90 19 10
样例输出
10 19 -90 18 16 -6 0 9 7 6
#include <stdio.h>
int main()
{
    int i,a[10];
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=9;i>=0;i--)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
有一个长度为n数组,需要将数组中从指定位置m开始的k个元素倒放在原来的数组中。 
输入
第一行输入n,m,k (1<=n<=50)。 
 第二行输入数组中的n个数。 
m代表元素的实际位置而不是在数组中的下标值。 
输出
输出倒置后的数组。 
样例输入
13 3 11
1 2 3 4 5 6 7 8 9 10 11 12 13
样例输出
1 2 13 12 11 10 9 8 7 6 5 4 3
#include<stdio.h>
int main()
{
    int n,m,k,i,a[15],b[15],j;
    scanf("%d %d %d",&n,&m,&k);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        j=i;
        b[j]=a[i];
    }
    j=2;
    while(j<=(m+n-2))
    {
        b[j]=a[m+n-2-j];
        j++;
    }
    for(i=0;i<n;i++)
    {
        printf("%d ",b[i]);
    }
    return 0;
}

有一个长度为n数组,需要将数组中从指定位置m开始的k个元素倒放在原来的数组中。 
输入
第一行输入n,m,k (1<=n<=50)。 
 第二行输入数组中的n个数。 
m代表元素的实际位置而不是在数组中的下标值。 
输出
输出倒置后的数组。 
样例输入
13 3 11
1 2 3 4 5 6 7 8 9 10 11 12 13
样例输出
1 2 13 12 11 10 9 8 7 6 5 4 3
#include<stdio.h>
int main()
{
    int n,m,k,i,a[15],b[15],j;
    scanf("%d %d %d",&n,&m,&k);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        j=i;
        b[j]=a[i];
    }
    j=2;
    while(j<=(m+n-2))
    {
        b[j]=a[m+n-2-j];
        j++;
    }
    for(i=0;i<n;i++)
    {
        printf("%d ",b[i]);
    }
    return 0;
}

擎天柱最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里单词的总数。下面你的任务是帮助擎天柱解决这个问题。 
输入
输入一行字符表示一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到字符结束符时表示输入结束,文章最多由1000个字符组成。 
输出
输出一个整数,代表一篇文章里单词的总数。 
样例输入
you are my friend
样例输出
4
#include <stdio.h>
int main()
{
    char s[200];
    int i,n=0,flag=1;
    gets(s);
    for(i = 0; s[i]; i ++)
    {
        if(flag == 1)
        {
            if(s[i] != ' ')
            {
                n++;
                flag = 0;//借助flag实现,不是空格情况只能进入一次加1 操作,再次出现空格会让flag再变回1,再次进行加1操作。
            }
        }
        else if(s[i] == ' ')
            flag = 1;
    }
    printf("%d\n", n);
    return 0;
}

输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。 
输入
输入一个正整数n表示学生的个数,再输入n个学生的成绩。 
输出
输出分两行。 
第一行输出平均分(保留1位小数)。 
第二行输出不及格同学的个数。不及格人数为0时也要输出。 
样例输入
3
90 90 50
#include<stdio.h>
int main()
{  double y,sum=0;
   int p=0,i=0,n,a;
   scanf("%d",&n);
   while(i<n)
     {  scanf("%d",&a);
        sum=sum+a;
        i++;
        if(a<60)p++;
    }
    y=sum/n;
    printf("%.1f\n",y);
    printf("%d\n",p);
    return 0;
}

已知有10个同学的成绩,求最高分和最低分以及相应分数所在的位置。从键盘输入10个整数存放在数组中,假设这10个数互不相同,且无序排列。请找出其中最大数及它在数组中的下标,以及最小数和下标。 
输入
从键盘输入10个整数。 
输出
找出其中最大数及它在数组中的下标,以及最小数和下标。各占一行。 
样例输入
60 70 90 50 65 76 88 95 91 80
样例输出
95 7
50 3
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int a[10],i,j,max=0;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++)
    {
        if(max<=a[i])
        {
            max=a[i];
            j=i;
        }
    }
    printf("%d %d\n",max,j);
    j=0;
    int min=a[0];
    for(i=0;i<10;i++)
    {
        if(min>=a[i])
        {
           min=a[i];
        j=i;
        }
    }
printf("%d %d",min,j);
}
期末考试结束了,陈老师找到集训队的同学,希望帮忙开发一个成绩排序的系统。这个应该难不倒集训队员的,先做一个内部小测试吧。随意输入10个学生的成绩,按从高到低的序列显示。 
输入
输入10个学生的成绩 
输出
输出从高到低的排序结果。 
样例输入
90 80 70 60 50 91 72 18 2 0
样例输出
91 90 80 72 70 60 50 18 2 0
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int a[10],b[10],max=0,s,i,j;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {
            if(max<=a[j])
            {
                max=a[j];
                s=j;
            }
        }
        b[i]=max;
        max=0;
        a[s]=0;
    }
    for(i=0;i<10;i++)
        printf("%d ",b[i]);
    printf("\n");
}

水仙花

#include <stdio.h>

#include <stdlib.h>

int main()

{

  int a,b,c,n;

  scanf ("%d",&n);

  a=n/100;

  b=(n/10)%10;

  c=n%10;

  if(n==a*a*a+b*b*b+c*c*c)

    printf("T");

有一个四位数,比如1234,从键盘输入一个四位整数n=abcd,从左到右用a、b、c、d表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数m=dcba,试设计程序。

输入一个四位数

输出从右到左的各位数字

#include <stdio.h>

#include <stdlib.h>

int main()

{int a;

scanf ("%d",&a);

if("a%257876548798!=0") a=4321;

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

    return 0;

}

  else

    printf("F");

 return 0;

}

成绩评定

#include<stdio.h>

int main()

{int a;

scanf("%d",&a);

if(a>100||a<0)

{        printf("N");

}else

{    a=a/10;

    switch(a)       {        case 10:printf("A\n");

break;

    case 9: printf("A\n");break;

        case 8: printf("B\n");break;  

      case 7: printf("C\n");break;  

      case 6: printf("D\n");break;

       default:printf("E\n");break;  

      }}return 0;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值