c语言编程题

作者&投稿:梁英 (若有异议请与网页底部的电邮联系)
~

对于这种类似于OJ的问题,输入和输出不能含有多余的字符,否则提交就会不通过,要严格按照题目要求进行输入和输出。

第一题分析:

  1. 这题求平均值,题目没有结束输入的条件(标记),该条件一般有多种形式,例如可以输入某个值结束输入(例如-1),或者先输入一个 n ,然后再用循环输入 n 个数。在这里就使用输入 -1 结束输入来编写代码。

  2. 整个题目的思路还是比较清晰。

  3. 先求全班人数和平均值,再求高的人数和平均值,再求低的人数和平均值。

  4. 这里需要注意最后一行的提示,如果平均值是一个整数,应该输出一个整数,例如平均值为 98.00,则应该输出 98,否则保留两位小数输出。

  5. 细节方面就是输入数据的问题。例如如果输入 -1,则人数、平均值全为 0。如果输入的分数都相同,则所有人都大于或等于全部平均分,此时低于全班平均分的人数为 0,根据求平均值公式(平均分=总分÷人数),此时出现除数为 0 的情况。

第一题求解过程:

  1. 声明一个数组(整型、浮点型都行)用来保存输入的分数。

  2. 在输入分数的同时可以累计班级总分和班级人数。

  3. 根据班级总分和班级人数求班级平均分。

  4. 再循环遍历数组,把高于平均分或低于平均分和相应的人数和分数统计出来。

  5. 再求出这两批的平均分。

  6. 最后输出数据。

第一题测试代码

第一题测试结果

第一题测试代码:

#include <stdio.h>

int main()

{

     int a[1000] = {0}, L = 0, mid = 0, R = 0;

     float sum = 0, Lsum = 0, Rsum = 0;

     float Laver = 0, aver = 0, Raver = 0;

     while (a[mid] != -1)

     {

          sum += a[mid];

          scanf("%d", &a[++mid]);

     }

     if (mid > 1) aver = sum / --mid;

     else --mid;

     for (int i = 1; i <= mid; i++)

     {

         if (a[i] < aver)

         {

             R++;

            Rsum += a[i];

         }

     }

     Lsum = sum - Rsum;

     L = mid - R;

     if (L > 0) Laver = Lsum / L;

     if (R > 0) Raver = Rsum / R;

    

     printf("%d ", mid);

     if (aver == (int)aver) printf("%.f
", aver);

     else printf("%.2f
", aver);

    

     printf("%d ", L);

     if (Laver == (int)Laver) printf("%.f
", Laver);

     else printf("%.2f
", Laver);

    

     printf("%d ", R);

     if (Raver == (int)Raver) printf("%.f
", Raver);

     else printf("%.2f
", Raver);

    return 0;

}

第二题分析:

  1. 这题可以完全用数学来解决。能用数学解决的,最好用数学来解决,运行速度快。

  2. 变量 a 表示 0 ~ 6,也代表星期一 ~ 星期日。

  3. 变量 n 是后面的有 n 天。

  4. a + 1 + n,其实就是总的天数,除以 7 的结果就是有多少周,1 周有一个星期五,所以除以 7 的结果就是能上机的次数。但是考虑到有余数的问题,如果余数是 5 或 6,说明还有一次上机的机会。

第二题运算过程:

  1. 声明变量和输入数据。

  2. int sum = a + 1 + n 求得总的天数。

  3. int cnt = sum / 7 求得上机的次数。

  4. if (sum % 7 >= 5) cnt++,求是否还有一次上机的机会。

  5. 输出结果。

第二题测试结果

第二题测试代码:

#include <stdio.h>

int main()

{

     int a, n;

     scanf("%d %d", &a, &n);

     int sum = a + 1 + n;

     int cnt = sum / 7;

     if (sum % 7 >= 5) cnt++;

     printf("%d", cnt);

     return 0;

}



C语言编程题目
答:下面是一些C编程题目:1. 编写程序,从键盘输入两个整数,输出它们的和、差、积、商、余数。2. 编写程序,从键盘输入三角形的三条边长,判断它们是否可以构成三角形,并输出三角形的类型(等边、等腰、一般)。3. 编写程序,从键盘输入字符串,统计其中的大写字母、小写字母、数字和其他字符的个数,并...

求一些c编程题
答:1、C语言程序的基本单位是___ A) 程序行 B) 语句 C) 函数 D) 字符、C、1 2、C语言程序的三种基本结构是___ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、1 3、C语言规定,程序中各函数之间 A) 既允许直接递归调...

经典C语言程序例子
答:题目01:在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。直接编译,程序执行结果如下图所示:题目02:编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0)。直接编译,程序执行结果如下图所示:...

C语言问题编程问题?
答:int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的...

c语言编程100题,有没有大神帮帮忙
答:您好,c语言经典100题:【程序1】题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数 都是多少 1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去 掉不满足条件的排列.2.程序源代码:main(){ int i,j,k;printf("\n");for(i1;i<5;i++)/*...

c语言编程题及答案
答:【4.2】输入年份year和月month,求该月有多少天。判断是否为闰年,可用如下C语言表达式:year%4==0 && year0!=0 || year@0==0。若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。【4.3】编写一个简单计算器程序,输入格式为:data1 op data2。

c语言作业编程问题
答:c语言作业编程问题 1、杨辉三角形的每一项数据正好是组合(即n!/m!/(n-m)!)的值,其中n是行数(从0行开始);m是列数(从0列开始)。请使用上述算法得到杨辉三角形每一个位置的值并按下图打印。要求用... 1、 杨辉三角形的每一项数据正好是组合 (即n!/m!/(n-m)!)的值,其中n是行数(从0行开始);m...

c语言编程题
答:第一题分析:这题求平均值,题目没有结束输入的条件(标记),该条件一般有多种形式,例如可以输入某个值结束输入(例如-1),或者先输入一个 n ,然后再用循环输入 n 个数。在这里就使用输入 -1 结束输入来编写代码。整个题目的思路还是比较清晰。先求全班人数和平均值,再求高的人数和平均值,...

c语言程序设计试题
答:阐述编程语言的概念,学习进制转换以及程序的基本运行原理,让大家先有一个整体上的认识。下面是我整理的关于c语言程序设计基础知识,希望大家认真阅读!【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、...

C语言编程题
答:根据题意:题目1:函数参数是除数(这里传值8),返回满足条件的数字和。题目2:函数参数是要找的项目数(这里传值10),返回对应项的值。include<stdio.h> define MIN 50 define MAX 1000 int fa(int a);//对应题目1的函数,参数:要除的数,返回可以被整除的数之和 int getByIndex(int n)...