精华内容
下载资源
问答
  • C语言训练

    2016-12-10 23:02:32
     1.对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。 给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。...
    
    1.对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。

    给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。

    测试样例:
    "ABCDEFGH",8,4
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    char *move(char *str,int len,int loc)
    {
    	int i;
    	int j;
    	char ch;
    	
    
    	if(len <= loc)
    	{
    		printf("error\n");
    		exit(-1);
    	}
    	else
    	{
    		for(i = 0; i < len - loc -1; i++)
    		{
    			ch = str[len - 1];
    
    			for(j = len - 1;j >= 1; j--)
    			{
    				str[j] = str[j - 1];
    			}
    
    			str[0] = ch;
    		}
    
    		return str;
    	}
    }
    
    int main()
    {
    	char str[20];
    	int n;
    
    	printf("input the string!\n");
    	scanf("%s",str);
    
    	printf("input the location!\n");
    	scanf("%d",&n);
    
    	printf("%s\n",move(str,strlen(str),n));
    
        return 0;
    }
    

    展开全文
  • C语言训练程序_自定义字符串连接函数
  • C语言训练程序_计算数组中n个数的和
  • C语言训练之杭电OJ

    2021-01-04 22:53:35
    C语言训练之杭电OJ一、水仙花数Problem Description问题描述Input输入Output输出Sample Input输入样例Sample Output输出样例代码如下:总结:二、求数列的和Problem Description问题描述Input输入Output输出Sample ...



    一、求数列的和

    Problem Description问题描述

    数列的定义如下:
    数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

    Input输入

    输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

    Output输出

    对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

    Sample Input输入样例

    81 4
    2 2

    Sample Output输出样例

    94.73
    3.41

    代码如下:

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int m,n,i;
    	while(~scanf("%d %d",&n,&m))
    	{
    		double s=n,temp=n;
    		for(i=1;i<m;i++,temp=sqrt(temp))
    			s+=sqrt(temp);
    		printf("%.2lf\n",s);
    	}
    }
    

    总结:

    初时未注意到本题有多组数据输入,只读入了一组数据,写完代码审阅时发现有问题,决定把scanf("%d %d",&n,&m);改为while(~scanf("%d %d",&n,&m))。结果,修改while语句时后面多了一个(分号);编译器又没报错,提交就一直不通过,粗心大意真是要不得!

    二、水仙花数

    Problem Description问题描述

    春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
    “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。
    现在要求输出所有在m和n范围内的水仙花数。

    Input输入

    输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

    Output输出

    对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
    如果给定的范围内不存在水仙花数,则输出no;
    每个测试实例的输出占一行。

    Sample Input输入样例

    100 120
    300 380

    Sample Output输出样例

    no
    370 371

    代码如下:

    #include <stdio.h>
    #include<math.h>
    int main()
    {
        int m,n,i,sum;
        while(~scanf("%d %d",&m,&n))
        {
        	int count=0;
        	for(i=m;i<=n;i++)
        	{
        	sum = pow(i%10,3) + pow((i/10)%10,3) + pow(i/100,3);
            if(sum==i)
            {
            	count++;
            	if(count==1) printf("%d",i);
            	else printf(" %d",i);
    		}
            
        	}
        if(count==0) printf("no");
        printf("\n");
    	}
    }
    

    总结:

    由于本题有多组数据输入,count在每组数据的for循环内都要做为判断条件,所以每一次count的值都需要初始化。开始时一直没注意到这一点,把count的赋值放在while循环前,结果测试样例能通过,提交却不能通过,思维还是不够缜密。

    展开全文
  • 1147: 【C语言训练】尼科彻斯定理 题目描述: 验证尼科彻斯定理,即:任何一个正整数的立方都可以写成一串连续奇数的和。 输入: 任一正整数 输出: 该数的立方分解为一串连续奇数的和
  • C语言训练程序_统计字符串中ASII值为偶数奇数的个数
  • C语言训练4之杭电OJ

    2021-01-09 15:53:08
    C语言训练4之杭电OJ一、青年歌手大奖赛_评委会打分Problem DescriptionInputOutputSample InputSample Output 一、青年歌手大奖赛_评委会打分 Problem Description 青年歌手大奖赛中,评委会给参赛选手打分。选手...

    一、青年歌手大奖赛_评委会打分

    Problem Description

    青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

    Input

    输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。

    Output

    对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

    Sample Input

    3 99 98 97
    4 100 99 98 97

    Sample Output

    98.00
    98.50

    #include<stdio.h>
    int main()
    {
    	int n;
    	while(~scanf("%d",&n))
    	{
    		int i,j,temp,a[n];
    		double s=0;
    		for(i=0;i<n;i++)
    			scanf("%d",&a[i]);
    		for(i=0;i<n;i++)
    		{
    			for(j=i+1;j<n;j++)
    			{
    				if(a[i]<a[j])
    				{
    					temp=a[i];
    					a[i]=a[j];
    					a[j]=temp;
    				}
    			}
    		}
    		for(i=1;i<n-1;i++)
    			s+=a[i];
    		printf("%.2lf\n",s/(n-2));
    	}
    }
    

    二、偶数求和

    Problem Description

    有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。

    Input

    输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。

    Output

    对于每组输入数据,输出一个平均值序列,每组输出占一行。

    Sample Input

    3 2
    4 2

    Sample Output

    3 6
    3 7

    #include<stdio.h>
    int main()
    {
    	int n,m;
    	while(~scanf("%d %d",&n,&m))
    	{	
    		int j,i,temp=n%m,k=n/m;
    		if(temp==0) temp+=m,k--;
    		long a=0,s=0;
    		for(j=0;j<k;j++)
    		{
    		s=0;
    		for(i=0;i<m;i++)
    		{
    			a+=2;
    			s+=a;
    		}
    		printf("%ld ",s/m);
    		}
    		s=0;
    		for(i=0;i<temp;i++)
    		{
    			a+=2;
    			s+=a;
    		}
    		printf("%ld\n",s/temp);
    	}
    }
    

    三、数据的交换输出

    Problem Description

    输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

    Input

    输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。

    Output

    对于每组输入数据,输出交换后的数列,每组输出占一行。

    Sample Input

    4 2 1 3 4
    5 5 4 3 2 1
    0

    Sample Output

    1 2 3 4
    1 4 3 2 5

    #include<stdio.h>
    int main()
    {
    	int n;
    	while(~scanf("%d",&n))
    	{	
    		if(n==0) break;
    		else
    		{
    		int a[n],i,temp;
    		for(i=0;i<n;i++)
    			scanf("%d",&a[i]);
    		int min=0;
    		for(i=0;i<n;i++)
    		if(a[min]>a[i]) min=i;
    		temp=a[min];
    		a[min]=a[0];
    		a[0]=temp;
    		printf("%d",a[0]);
    		for(i=1;i<n;i++)
    		printf(" %d",a[i]);
    		printf("\n");
    		}
    	}
    }
    

    四、 字符串统计

    Problem Description

    对于给定的一个字符串,统计其中数字字符出现的次数。

    Input

    输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

    Output

    对于每个测试实例,输出该串中数值的个数,每个输出占一行。

    Sample Input

    2
    asdfasdf123123asdfasdf
    asdf111111111asdfasdfasdf

    Sample Output

    6
    9

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	for(;n>0;n--)
    	{
    		char c,a[1000];
    		int count=0,i;
    		c=getchar();
    		scanf("%s",a);
    		int len=strlen(a);
    		for(i=0;i<len;i++)
    		if(a[i]<='9'&&a[i]>='0') count++;
    		printf("%d\n",count);
    	}
    }
    

    五、母牛的故事

    Problem Description

    有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

    Input

    输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
    n=0表示输入数据的结束,不做处理。

    Output

    对于每个测试实例,输出在第n年的时候母牛的数量。
    每个输出占一行。

    Sample Input

    2
    4
    5
    0

    Sample Output

    2
    4
    6

    #include<stdio.h>
    int fib(int n);
    int main ()
    {
        int n;
        while(~scanf("%d",&n))
        {
        if(n==0) break;
        printf("%d\n",fib(n));
    	}
    }
    int fib(int n)
    {
        int m;
        if(n>=1&&n<=3) m=n;
        else m=fib(n-1)+fib(n-3);
        return m;
    }
    
    展开全文
  • C语言训练3之杭电OJ

    2021-01-08 22:57:52
    C语言训练3之杭电OJ一、绝对值排序Problem DescriptionInputOutputSample InputSample Output疑问: 一、绝对值排序 Problem Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一...

    一、绝对值排序

    Problem Description

    输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

    Input

    输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。

    Output

    对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。

    Sample Input

    3 3 -4 2
    4 0 1 2 -3
    0

    Sample Output

    -4 3 2
    -3 2 1 0

    #include<stdio.h>
    int main()
    {
    	for(;;)
    	{
    		int n,i,j,tempa,tempb;
    		scanf("%d",&n);
    		if(n==0) break;
    		int a[n],b[n];
    		for(i=0;i<n;i++)
    		{
    			scanf("%d",&a[i]);
    			if(a[i]<0) b[i]=-a[i];
    			else b[i]=a[i];
    		}
    		for(i=0;i<n;i++)
    		{
    			for(j=i+1;j<n;j++)
    			{
    				if(b[i]<b[j])
    				{
    					tempb=b[i],tempa=a[i];
    					b[i]=b[j],a[i]=a[j];
    					b[j]=tempb,a[j]=tempa;
    				}
    			}
    		}
    		printf("%d",a[0]);
    		for(i=1;i<n;i++)
    			printf(" %d",a[i]);
    		printf("\n");		
    	}
    }
    

    疑问:

    在编译器上测试都通过了,在杭电OJ上却一直不能通过,把C语言换成GCC就能通过了,感觉有些困惑。

    展开全文
  • C语言训练2-杭电OJ

    2021-01-05 21:07:22
    C语言训练2-杭电OJ一、数值统计Problem DescriptionInputOutputSample InputSample Output 一、数值统计 Problem Description 统计给定的n个数中,负数、零和正数的个数。 Input 输入数据有多组,每组占一行,每行的...
  • c语言训练试题

    2014-04-14 11:33:27
    包括03-09年的c语言类型的所有试题。。全部都是贴近考试的。
  • 9.23C语言训练

    2019-09-23 23:06:20
    9.23日常训练 今天了解了一个比较有意思的东西,对系统进行操作,利用系统操作对电脑实行定时关机操作,同时还有一部分小游戏的编程,预计明天完成上传 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>...
  • 1134: 【C语言训练】亲密数 时间限制: 1 Sec 内存限制: 128 MB提交: 1 解决: 1 [提交][状态][讨论版][命题人:外部导入] 题目描述 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B...
  • C语言训练客户端

    2012-11-22 21:24:43
    加强自己的C能力就动手吧,这里是个加强的好实力
  • C语言训练程序

    2012-10-13 12:44:31
    /* 请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSH。...
  • c语言训练

    2019-01-25 22:18:52
    如何判断一个素数?100~200之间的素数怎么判断 #include&lt;stdio.h&gt; int main() { int i; int a; int b; printf(" Please input: "); scanf("%d"... printf(...
  • 1146. 【C语言训练】字符串正反连接

    千次阅读 2017-12-25 00:48:33
    C语言训练】字符串正反连接 题目描述: 所给字符串正序和反序连接,形成新串并输出 输入: 任意字符串(长度) 输出: 字符串正序和反序连接所成的新字符串 样例输入 123abc 样例输出 123abccba321...
  • 1039: 【C语言训练】角谷猜想 时间限制: 1 Sec内存限制: 128 MB提交: 2解决: 2[提交][状态][讨论版] 题目描述 角谷猜想: 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷...
  • C语言训练】计算1977!*

    千次阅读 2015-03-02 21:16:05
    1130: 【C语言训练】计算1977!* Time Limit: 1 Sec Memory Limit: 128 MB Submit: 7 Solved: 4 [Submit][Status][Web Board] Description 编写一个程序,计算1977!的值, Input ...
  • 题目要求: [C语言训练]计算t=1+1/2+1/3+...+1/n
  • 本人东北大学计算机考研复习C语言时,整理的代码,可以直接刷这些。
  • C语言训练:输入年月日,输出是这一年的第几周 1.#include <stdio.h> 2. int main(){ 3. int i,year,month,day,d1,n,w,b,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 4. printf(“请输入年月日:”); 5. ...
  • 题目描述 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=13+53+3^3。 输入 无 输出 输出每一个水仙花数,一个数占一行 ...
  • PAGE PAGE 103 二填空题参考答案 1. 2.5 2. 16 3. 2 4. 0 50 6sqrt(s(s-a(s-b(s-c) 7. (-b+sqrt(b*b-4*a*c)/2/a 8. p*pow(1+r,5) 9(x+1*exp(2*x) 10ch>='A&ch(n>9&abs(n!=0&b!=0 13. a==-b 14. a==0&
  • 二填空题参考答案 2.5 2. 16 3. 2 0 5 0 6 sqrt(s(s-a(s-b(s-c) 7. (-b+sqrt(b*b-4*a*c)/2/a p*pow(1+r,5) 9 (x+1*exp(2*x) 10 ch>= 'A&ch(n>9&abs(n!=0&b!=0 13. a==-b a==0&b!=0||b==0&a!=0 15. m%2==
  • C语言训练-1013

    2018-10-23 17:25:27
    A+B for Input-Output Practice (IV) Problem Description Your task is to Calculate the sum of some integers. Input Input contains multiple test cases. Each test case contains a integer N, and then N int...
  • Problem Description 输入一个字符串,判断其是否是C的合法标识符。 Input 输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。...
  • 100道C语言训练

    2021-01-27 22:03:47
    哈哈
  • 就业班训练目录 第一单元 程序设计和C语言 1 第二单元 顺序程序设计 3 第三单元 分支程序设计 7 第四单元 循环程序设计 14 第五单元 数 组 23 第六单元 函 数 34 第七单元 指 针 42 第八单元 结构体和共用体 61 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,989
精华内容 1,195
关键字:

c语言训练

c语言 订阅