首页 > 其他分享 >c语言复习

c语言复习

时间:2024-03-03 14:55:34浏览次数:21  
标签:count 复习 int 样例 printf include 输入 语言

3-2 奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个

#include<stdio.h>
int main()
{
    int count_odd, count_even, i, n, number;
    count_odd,count_even,i,n,number;
    count_odd=0;    /*count_odd记录奇数的个数*/
    count_even=0;   /*count_even记录偶数的个数*/
    printf("Enter n:"); 
    scanf("%d",&n);
    printf("Enter %d numbers:",n);
    for(i=1; i<=n; i++){
        scanf("%d", &number);
        if(number%2!=0){    /*若number除以2的余数不是0,則力奇数*/
            count_odd++;
        }else{
            count_even++;
        }
    }
    printf("Odd:%d, Even:%d\n",count_odd, count_even);
    return 0;
}

练习3-2 计算符号函数的值

对于任一整数n,符号函数sign(n)的定义如下:

image-20240303103042572
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。

输入样例1:
10
输出样例1:
sign(10) = 1
输入样例2:
0
输出样例2:
sign(0) = 0
输入样例3:
-98
输出样例3:
sign(-98) = -1
#include <stdio.h>
int main(){
    int n, sign; 
    scanf("%d", &n); 
    if( n < 0 )
        sign = -1;
    else if( n == 0 )
        sign = 0;
    else 
        sign = 1;    
    printf("sign(%d) = %d", n, sign);
    return 0;
}

练习3-3 统计学生平均成绩与及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:
按照以下格式输出:

average = 成绩均值
count = 及格人数
其中平均值精确到小数点后一位。

输入样例:
5
77 54 92 73 60
输出样例:
average = 71.2
count = 4

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int N;
    int count=0,sum=0;
    double P;
    scanf("%d\n",&N);
    for (int i=0; i<N; i++)
    {
        int a;
        scanf("%d",&a);
        if(a>=60)
        {
            count ++;
        }
        sum=sum+a;
    }
    P= N==0? 0: sum*1.0/N;
    printf("average = %.1f\n",P);
    printf("count = %d",count);
}


3-10 输入一个正整数n,再输入n个字符,分别统计出其中空格或回车、数字字符和其他字符个数。要求使用switch语句编写。

// 统计字符,包括空格或回车、数字字符和其他字符
#include<stdio.h>
int main(){
    int blank, digit, i, n, other;    /*定义3个变量分别存放统计结果*/
    char ch;
    blank = digit = other = 0; /*置存放统计结果的3个变量的初值为零*/
    printf("Enter n:");
    scanf("%d",&n);
    getchar();
    printf("Enter %d characters:",n);
    for(i=1; i<=n; i++){
        ch = getchar();     /*输入1个字符*/
        switch(ch){
            case ' ':   /*语句段为空,请注意空格符的表示方式 */
            case '\n':
            blank++;
            break;
            case'0': case'1': case'2': case'3': case'4':
            case'5': case'6': case'7': case'8': case'9':
                digit++;
                break;
            default:
                other++;
                break;
        }
    }
    printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
    return 0;
}

练习4-3 求给定精度的简单交错序列部分和

本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。

输入格式:

输入在一行中给出一个正实数eps。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

输入样例1:

4E-2

输出样例1:

sum = 0.854457

输入样例2:

0.02

输出样例2:

sum = 0.826310
#include<stdio.h>
#include<math.h>
int main(){
	double eps,i,x=1.0,sum=1.0;
	scanf("%lf",&eps);
	for(i=1;x>eps;i++){
		x=1/(1+3*i);          // 错误点:写了i+=3;导致i实际加了不止3 
		sum += (pow(-1,i))*x;
	}
	printf("sum = %.6lf",sum);
	return 0;
}

判断素数

#include <stdio.h>
int main()
{
	int n,i;
	printf("请输入一个数:\n");
	scanf("%d",&n);
	for(i=2;i<n;i++)
		if(n%i==0)
			break;
	if(i<n)
		printf("%d不是素数\n",n);
	else
		printf("%d是素数\n",n); 
	return 0;
} 

4-7 求e的近似值

自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。

输入格式:

输入第一行中给出非负整数 n(≤1000)。

输出格式:

在一行中输出部分和的值,保留小数点后八位。

输入样例:

10

输出样例:

2.71828180
#include<stdio.h>
int main()
{
	int i, j, n;
	double m, sum;
	sum=1;
	scanf("%d", &n);
	for(i=1; i<=n; i++){
		m=1;
		for(j=1; j<=i; j++){
			m=m*j;//阶乘
		}
		m=1.0/m;
		sum=sum+m;
	}
	printf("%.8f", sum);
	
	return 0;
}

5-3 使用函数判断完全平方数。定义一个判断完全平方数的函数 IsSquare(n),当n为完全平方数时返回 1,否则返回 0,不允许调用数学库函数。

可以来用以下等差数列求和公式计算。
1+3+5+7+..+(2×m-1)=m^2=n

#include <stdio.h>
int IsSquare(int n){
    int i;
    for(i=1; n>0; i=i+2){
        n=n-i;
    }
    if(n==0){
        return 1;
    }else{
        return 0;
    }
}

5-4 最大公约数函数

#include <stdio.h>
int main()
{
    int u, v;
    scanf("%d %d", &u, &v);
    while (v != 0)
    {
        int tmp = u % v;
        u = v;
        v = tmp;
    }
    printf("%d", u);
    return 0;
}

5-6 数字金字塔

#include <stdio.h>
void pyramid(int n );
int main()
{
    int n;
    scanf("%d", &n);
    pyramid(n);
    return 0;
}
void pyramid( int n ){
    int i,j,k;
    //下面是三层for
    for(i=1;i<=n;i++){
        for( j=1;j<=n-i;j++){
            printf(" ");//输出空格
        }
        for(k=1;k<=i;k++){//行数和数字数目相同的。
            printf("%d",i);
            printf(" ");
        }
        printf("\n");//注意换行
    }
}

7-1 输入所有大于平均值的数

输入格式:

输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。

输出格式:

输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。

如果输入的n不在有效范围内,则在一行中输出"Invalid."。

输入样例1:

10
55 23 8 11 22 89 0 -1 78 186

输出样例1:

47.10
55 89 78 186 

输入样例2:

0

输出样例2:

Invalid.
//
// Created by hl on 2024/3/3.
//
#include<stdio.h>
int main()
{
    int i,n,count=0,sum=0;
    double ave;
    int a[10]; //括号里面要为数!
    scanf("%d",&n);
    if(n>10||n<1) printf("Invalid.");
    else{ //这个括号不能省!!!
        for(i=0;i<n;i++){ //i从0开始!
            scanf("%d",&a[i]); //给数组元素输入数字
            sum=sum+a[i];
        }
        ave=1.0*sum/n;
        printf("%.2f\n",ave);
        for(i=0;i<n;i++){
            if(a[i]>ave){
                printf("%d ",a[i]);
                count++;
            }
        }
        if(count==0) printf("\n");
    }
    return 0;
}

7-10 计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。

输入格式:

输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

输出格式:

在一行输出日期是该年中的第几天。

输入样例1:

2009/03/02

输出样例1:

61

输入样例2:

2000/03/02

输出样例2:

62
#include<stdio.h>
int main()
{
    int y,m,d,days=0;
    scanf("%d/%d/%d",&y,&m,&d);
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if(y%400==0||(y%4==0&&y%100!=0))
        a[1]=29;
    for(int i=0;i<m-1;i++)
    {
        days+=a[i];
    }
    days+=d;
    printf("%d",days);
    return 0;
}

7-11 回文字符串

//
// Created by hl on 2024/3/3.
//
#include <stdio.h>
#include <string.h>

int main()
{
    char a[100]= {0};
    int i = 0;
    int len = 0;
    gets(a);
    len = strlen(a); //计算输入字符串的长度;
    for(i = 0; i < (len / 2); i++) //只需要判断前一半(len/2)长度就好了
    {
        if(a[i] != a[len - 1 - i]) //判断是否为回文数;
        {
            printf("不是回文数\n");
            return 0;
        }
    }
    printf("是回文数\n");
    return 0;
}

冒泡排序

#include<stdio.h>
int main(){
    int data[10];
    printf("请输入数据:\n");
    int i,j;
    for(i = 0;i < 10;i ++){
        scanf("%d",&data[i]);	//输入数据
    }
    for(i = 0;i < 10;i ++){  //采用双重循环
        for(j = 0;j < 10 - 1 - i;j++){
            if(data[j] > data[j+1]){     //这里默认采用升序来排列
                int temp;        //定义一个临时值来存储数据,以此来达到交换数值的目的
                temp = data[j];
                data[j] = data[j+1];
                data[j+1] = temp;
            }
        }
    }
    printf("排序好的数组为:\n");
    for(i = 0;i < 10;i ++){    //用for循环来遍历并输出排序完成的数组
        printf("%d ",data[i]);
    }
    return 0;
} 

标签:count,复习,int,样例,printf,include,输入,语言
From: https://www.cnblogs.com/ydd1/p/18050050

相关文章

  • Go语言精进之路读书笔记第43条——使用testdata管理测试依赖的外部数据文件
    43.1testdata目录Go语言规定:Go工具链将忽略名为testdata的目录。开发者可以在名为testdata的目录下存放和管理测试代码依赖的数据文件,数据文件可作为输入也可作为输出gotest命令在执行时会将被测试程序包源码所在目录设置为其工作目录,可以这样使用f,err:=os.Open("testda......
  • Windows配置R语言、RStudio开发环境
      本文介绍R语言及其集成开发环境RStudio的下载、安装方法。  R语言是一个属于GNU操作系统的开源软件,在数据统计与分析、可视化等方面具有优秀的表现;而RStudio则是R语言的集成开发环境(IDE),可以帮助我们更好地编辑、调试R语言的代码。这二者的关系有点类似于Python与Spyder的关......
  • C语言贪吃蛇小游戏
    #include<stdio.h>#include<graphics.h>//里面有easyX图形库函数#include<conio.h>#include<time.h>#include<mmsystem.h>//#pragmacomment(lib,"winmm.lib")/******************************结构体*****************************......
  • go语言实现扫雷
    源码如下packagemainimport( "archive/zip" "bytes" "encoding/base64" "fmt" "image" "image/color" "image/png" "log" "math/rand" "strings" "ti......
  • 考研复习方法概述
    为达到最佳的学习效果,下面说明平时学习中应当把握住的两个层次:夯实基础要熟练掌握各类概念、定理、公式、图像、技巧及结论等基础,各类细节知识点要事无巨细、不厌其烦地重复熟记,达到提纲挈领、总揽全局的效果。要明确基础部分必须是考纲或课本知识体系中存在的或从中总结出......
  • C语言递归调用子函数
    示例代码1:10进制转16进制查看代码 #include<stdio.h>voiddec2hex(intn){ if(n>15) dec2hex(n/16); if(n%16<10) printf("%c",n%16+'0'); else printf("%c",n%16+55); //printf("%c",n%16<10?n%16+'......
  • 关于C语言结构体
    1.C语言的结构体struct是一个数据类型,这样理解和int,char,float等一样都是数据类型,不过这个数据类型比较特殊,它是由好几种不同的数据类型组成;如:struct{inta,charb,floatc,}Name;解释一下,结构体是数据类型,所以就要先定义在使用,这里定义了一个名为Name的结构体里面有三个数据......
  • 2024-03-02:用go语言,一个句子是由一些单词与它们之间的单个空格组成, 且句子的开头和结
    2024-03-02:用go语言,一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格,比方说,"HelloWorld","HELLO","helloworldhelloworld"都是句子,每个单词都只包含大写和小写英文字母,如果两个句子sentence1和sentence2,可以通过往其中一个句子插入一......
  • Go语言的100个错误使用场景(55-60)|并发基础
    目录前言8.并发基础8.1混淆并发与并行的概念(#55)8.2认为并发总是更快(#56)8.3分不清何时使用互斥锁或channel(#57)8.4不理解竞态问题(#58)8.5不了解工作负载类型对并发性能的影响(#59)8.6不懂得使用Gocontexts(#60)小结前言大家好,这里是白泽。《Go语言的100个错误以及如何避免》......
  • 掌握C语言指针,轻松解锁代码高效性与灵活性(中)
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......