湖南工业大学2024616

电话费用比较

    float callTime; // 通话时间
    scanf("%f", &callTime); // 读取通话时间
    // 计算Easyown和GSM的费用
    float costEasyown = callTime * 0.6; // Easyown费用
    float costGSM = 50 + callTime * 0.4; // GSM费用,包括月租费
    // 判断哪种方式更便宜
    if (costEasyown < costGSM) {
        printf("Easyown\n");
    } else if (costEasyown > costGSM) {
        printf("GSM\n");
    } else {
        printf("equal\n");
    }

分段计算水费
{
    double x, y;
    scanf("%lf", &x);
    if (x <= 15) {
        y = 4 * x / 3;
    } else {
        y = 2.5 * x - 10.5;
    }
    printf("%.2lf\n", y);

阶梯电价计算
    double electricity, cost;
    int tier;
    // 读取用户输入的用电度数
    scanf("%lf", &electricity);
    // 根据用电度数确定阶梯电价档次
    if (electricity <= 220) {
        tier = 1;
    } else if (electricity <= 400) {
        tier = 2;
    } else {
        tier = 3;
    }
    // 根据阶梯档次计算电费
    switch (tier) {
        case 1:
            cost = electricity * 0.49;
            break;
        case 2:
            cost = 220 * 0.49 + (electricity - 220) * 0.54;
            break;
        case 3:
            cost = 220 * 0.49 + (400 - 220) * 0.54 + (electricity - 400) * 0.79;
            break;
    }
    // 输出电费金额,保留两位小数
    printf("%.2f\n", cost);

珂朵莉送礼物
{
    int a,b;
    scanf("%ld",&a);
    if(a%3==0) b=a/3*2;
    else b=a/3*2+1;
    printf("%d",b);   
}
面试资格确认
#include<stdio.h>
#include <string.h>  
int main () {
    int age;
    char zy[10],xx;
    scanf("%d\n",&age);
    scanf("%s\n",&zy);
    scanf("%c\n",&xx);
    if(strcmp(zy, "EIE") == 0){
        if (age>25||xx=='A'){
            printf("YES\n");
        }else 
        printf("NO\n");
    }else if(strcmp(zy, "CS") == 0){
        if (age<28){
        printf("YES\n");
        }else 
        printf("NO\n");

    }
return 0;
}
苹果与虫子
#include <stdio.h>
#include <math.h> // 引入math.h以使用ceil函数
int main() {
    int m, t, s;
    scanf("%d %d %d", &m, &t, &s); // 读取输入的m, t, s
    // 总时间大于或等于吃完所有苹果的时间,或者吃一个苹果的时间等于0
    if (s >= m * t || t == 0) {
        printf("0\n"); // 输出0
    } else {
        // 使用ceil函数向上取整
        double eatenApples = ceil((double)s / t);
        int remainingApples = m - (int)eatenApples; // 计算剩余的苹果数
        printf("%d\n", remainingApples); // 输出剩余的苹果数
    }
    return 0;
}
秋奕买瓜
   int w;
    // 读取输入的西瓜重量
    scanf("%d", &w);
    // 判断条件:西瓜重量大于2且为偶数
    if (w > 2 && w % 2 == 0) {
        // 如果满足条件,则输出 "YES"
        printf("YES\n");
    } else {
        // 否则输出 "NO"
        printf("NO\n");
    }
纸牌    
int n,result;
    scanf("%d", &n); 
    if (n % 2 == 0) {
        result = n/2;
    } else {
        result = 1 + n/2 ;
    }
    printf("%d\n",result);
计算Sn
   int n, i, x = 1; // x用来控制正负号,初始化为1  
    long long Sn = 0; // 使用long long来避免可能的整数溢出  
    // 输入正整数n  
    scanf("%d",&n);  
    // 计算Sn的值  
    for (i = 1; i <= n; ++i) {  
        Sn += x * i; // 累加每一项的值,sign控制正负  
        x *= -1; // 切换正负号  
    }  
    // 输出结果  
    printf("%d",Sn);  
    return 0;
求n个数的平均值
#include "stdio.h"
#define N 10
  float  fun(int a[N],int n)  
  {
  /***********begin***********/
  int sum=0;
  float ave=0;
  for(int i=0;i<n;i++)
  sum+=a[i];
  ave=sum/10.0;
  return ave;
  /***********end***********/
 
  }

int main()
  { 
    int a[N],i;
    for(i=0;i<N;i++) scanf("%d",&a[i]);
    float average;
    average=fun(a,N);
    printf("%.4f\n",average);
    return 0;
  }
求sn=a+aa+aaa+aaaa...
    int a,n,sum,s;
    scanf("%d%d",&a,&n);
    for (int i = 1; i <= n; i++) {  
        // 构建当前项(例如:aa, aaa, ...)  
        sum = sum * 10 + a;  
        // 累加当前项到总和中  
        s += sum;  
    }  
    printf("%d",s);
求满足条件的数之和
 int fun(int m,int n)
  {  int sum,i; 
  /***********begin***********/
      sum = 0;
      for (i = m; i <= n; i++) {
        if (i % 3 != 0) {
            sum += i;
        }
    }
    return sum;
  /***********end***********/
  }
 int main( )
  { 
    int m,n;
    scanf("%d,%d",&m,&n);
    printf("s=%d\n",fun(m,n));
    return 0;
  }
求最大公约数和最小公倍数计算
//编写最大公约数GCD函数
/*********Begin*********/
long long int gcd(long long int a, long long int b) {  
    // 辗转相除法  
    if (b == 0) {  
        return a;  
    }  
    return gcd(b, a % b);  
}  
/*********End**********/ 

//编写最小公倍数LCM函数
/*********Begin*********/
long long int lcm(long long int a, long long int b) {  
    // 最小公倍数 = 两数之积 / 最大公约数  
    return a * b / gcd(a, b);  
}  
/*********End**********/ 
int main(void)
{  
    /*********Begin*********/
long long int num1, num2, g, l;  
  
    // 输入两个整数  
        
        if (scanf("%lld %lld", &num1, &num2) != 2 || num1 <= 0 || num2 <= 0) {  
            printf("Input Error\n");  
            return 1;  
        }  
  
    // 调用函数并输出结果  
        g = gcd(num1, num2);  
        l = lcm(num1, num2);  
        printf("%lld ", g);  
        printf("%lld\n", l);  
    /*********End**********/ 
    return 0;
水仙花数的个数
   int a, b, count = 0;  
    scanf("%d,%d", &a, &b);  
    for (int i = a; i <= b; i++) {  
        int num = i;  
        int sum = 0;  
        while (num > 0) {  
            int digit = num % 10;  
            sum += digit * digit * digit;  
            num /= 10;  
        }  
        if (sum == i) {  
            count++;  
        }  
    }  
    printf("%d\n",count);
循环—求和
/***********begin***********/
   scanf ("%d",&n);
   for(s=0,i=1;i<=n;i++)
    {
      if(i%7!=0&&i%5!=0)
      s+=i;
      continue;
    }
  /************end************/
循环—求满足条件的数之和
/***********begin***********/
 for(sum=0,i=0;i<n+1;i++)
 {if (i%3!=0)
 sum+=i;
 continue;}
 return sum;
  /***********end***********/
不及格成绩统计
   int a[40];
    int n, i, sum = 0;
    printf("Enter the number:\n");
    scanf("%d", &n);
    for(i = 0; i < n; i++){
        scanf("%d", &a[i]); // 直接读入成绩到数组中对应的位置
        if(a[i] < 60){ // 判断该成绩是否不及格
            sum++; // 如果不及格,计数器加一
        }
    }
    printf("count=%d\n", sum);
    return 0;
存款买房
int main() {
    double total_cost, annual_salary, portion_down_payment, portion_saved;
    double down_payment, monthly_savings, savings_needed, months;
    // 读取输入
    scanf("%lf", &total_cost);
    scanf("%lf", &annual_salary);
    scanf("%lf", &portion_saved);
    // 计算首付款
    portion_down_payment = 0.30; // 30% 首付
    down_payment = total_cost * portion_down_payment;
    // 计算每月存款
    monthly_savings = (annual_salary / 12) * (portion_saved / 100);
    // 计算需要的月份数
    savings_needed = down_payment;
    months = savings_needed / monthly_savings;
    if (months != (int)months) { // 如果有余数,月份数需要加1
        months = (int)months + 1;
    }
    // 输出结果,保留两位小数
    printf("%.2f,%.2f,%d\n", down_payment, monthly_savings, (int)months);
电报换字符
   char ch;
    while ((ch=getchar())!=EOF){
        if (ch>='a'&&ch<='y'){
            putchar(++ch);
        }else if (ch=='z'){
            putchar('a');
        }else{
            putchar(ch);
        }
    }
数字计数
   int n, x, count = 0;
    // 读取输入
    scanf("%d %d", &n, &x);
    // 遍历区间 1 到 n 的每个数字
    for (int i = 1; i <= n; i++) {
        int temp = i; // 用于分解数字的临时变量
        while (temp > 0) {
            if (temp % 10 == x) {
                count++; // 如果当前最低位是 x,则计数加1
            }
            temp /= 10; // 移除当前最低位
        }
    }
    // 输出结果
    printf("%d\n", count);
体操比赛打分
   float a[10],max=0.0,min=100.0,sum=0.0,pjf;
    int i;
    for(i=0;i<10;i++){
        scanf("%f",&a[i]);
        if (a[i]>max){
            max=a[i];
        }
        if (a[i]<min){
            min=a[i];
        }
        sum+=a[i];
    }
    sum=sum-min-max;
    pjf=sum/8;
    printf("%.3f %.3f %.3f",max,min,pjf);
小玉在游泳
   float s;
    float k=2;
    float sum=2;
    int i=1;
    scanf("%f",&s);
    while(s>sum)
    {
        i++;
        k*=0.98;
        sum+=k;
    }
    printf("%d",i);
学长的文本匹配
    char s[10],c[]="codeforces";
    int i,d=0;
    scanf("%s",&s);
    for (i=0;i<10;i++){
        if (s[i]!=c[i]){
            d++;
        }
    }
    printf("%d",d);
一周的日最高气温
   int temperatures[7];  
    int i, maxTemp = 0;
    for (i = 0; i < 7; i++) {  
        scanf("%d", &temperatures[i]);  
        if (temperatures[i] < 20 || temperatures[i] > 84) {  
            return 1;   
        }  
        if (temperatures[i] > maxTemp) {  
            maxTemp = temperatures[i];  
        }  
    }  
    printf("max=%d\n", maxTemp);
一尺之锤
   int a,day=1;
    scanf("%d",&a);
    for(;a>1;){
        a=a/2;
        day++;
    }
    printf("%d",day);
好朋友的对数
   int numsSize;
    // 输入数组大小
    scanf("%d", &numsSize);
    int nums[numsSize];
    // 输入数组元素
    for (int i = 0; i < numsSize; i++) {
        scanf("%d", &nums[i]);
    }
    int count = 0;
    // 双重循环遍历数组找出所有的(i, j)对
    for (int i = 0; i < numsSize; i++) {
        for (int j = i + 1; j < numsSize; j++) {
            // 如果满足nums[i] == nums[j],则该对是好朋友
            if (nums[i] == nums[j]) {
                count++;
            }
        }
    }
    // 输出好朋友的数量
    printf("%d\n", count);
财务管理
   double balance[12]; // 存储每个月的期末余额
    double total = 0.0; // 存储总余额
    int i;
    // 读取输入的十二个月的期末余额
    for (i = 0; i < 12; i++) {
        scanf("%lf", &balance[i]);
        total += balance[i]; // 累加每个月的余额
    }
    // 计算平均余额
    double average = total / 12;
    // 输出结果,格式化为带有美元符号的字符串
    printf("$%.2f\n", average);
去掉最值后的平均工资
   int N;
    scanf("%d", &N); // 读取数组大小
    int nums[N]; // 根据输入的N创建数组
    double total = 0; // 存储工资总和
    // 读取工资数据
    for (int i = 0; i < N; i++) {
        scanf("%d", &nums[i]);
        total += nums[i]; // 累加工资
    }
    // 找到最大值和最小值
    int max = nums[0], min = nums[0];
    for (int i = 1; i < N; i++) {
        if (nums[i] > max) max = nums[i];
        if (nums[i] < min) min = nums[i];
    }
    // 去掉两个最值后重新计算总和
    total -= max + min;
    // 计算平均工资
    double average = total / (N - 2);
    // 输出结果,保留五位小数
    printf("%.5f\n", average);
你的生活费高吗
    int N; // 班级人数
    int total = 0; // 所有生活费的总和
    int expenses[50]; // 存储每位同学的生活费,假设班级人数不超过50人
    // 读取输入的生活费
    for (N = 0; N < 50 && scanf("%d", &expenses[N]) == 1; N++) {
        total += expenses[N]; // 累加生活费
    }
    // 计算平均生活费
    double average = (double)total / N;
    // 输出超过平均生活费的费用
    for (int i = 0; i < N; i++) {
        if (expenses[i] > average) {
            printf("%d ", expenses[i]);
        }
    }
只出现了一次的元素之和
int main() {
    int N;
    scanf("%d", &N); // 读取数组的大小
    int nums[N]; // 创建数组存储输入的整数
    int counts[101] = {0}; // 创建一个数组来统计每个数字出现的次数,大小为101,因为1≤nums[i]≤100
    // 读取数组中的整数,并统计每个数字出现的次数
    for (int i = 0; i < N; i++) {
        scanf("%d", &nums[i]);
        counts[nums[i]]++; // 增加相应数字的计数
    }
    int sum = 0; // 初始化唯一元素的和为0
    // 遍历统计数组,找出只出现一次的元素,并累加它们的值
    for (int i = 1; i <= 100; i++) {
        if (counts[i] == 1) {
            sum += i; // 如果某个数字出现一次,则累加到sum中
        }
    }
    // 输出唯一元素的和
    printf("%d\n", sum);
    return 0;
寻找活雷锋
   int a[4][5];
    int i,j;
    int found=0;
    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {scanf("%d", &a[i][j]);  
            if(a[i][j]==16)
            {found=1;}
        }
    }
    if (found==1)
        printf("yes");
    else
        printf("no");
    return 0;
小明的爱
int main() {  
    char s[10001]; // 假设字符串长度不会超过10000  
    int l_count = 0, o_count = 0, v_count = 0, e_count = 0;  
  
    // 读取字符串  
    scanf("%s", s);  
  
    // 统计l, o, v, e的个数  
    for (int i = 0; s[i] != '\0'; i++) {  
        switch (s[i]) {  
            case 'l':  
                l_count++;  
                break;  
            case 'o':  
                o_count++;  
                break;  
            case 'v':  
                v_count++;  
                break;  
            case 'e':  
                e_count++;  
                break;  
            default:  
                // 不处理其他字符  
                break;  
        }  
    }  
  
    // 表白次数取决于四个字符中出现次数最少的字符  
    int min_count = l_count;  
    if (o_count < min_count) min_count = o_count;  
    if (v_count < min_count) min_count = v_count;  
    if (e_count < min_count) min_count = e_count;  
  
    // 输出结果  
    printf("%d\n", min_count);  
判断字符的出现是否唯一
#include <stdio.h>  
#include <string.h>  
  
int areAllCharsUnique(char *s) {  
    int charSet[256] = {0}; // 初始化字符集数组为全0  
    int length = strlen(s);  
      
    // 遍历字符串,检查每个字符是否已经在字符集中出现过  
    for (int i = 0; i < length; i++) {  
        if (charSet[s[i]] != 0) { // 如果字符已经出现过,则返回1  
            return 1;  
        }  
        charSet[s[i]] = 1; // 标记字符已经出现过  
    }   
    // 字符串中的所有字符都唯一出现,返回0  
    return 0;  
}  
int main() {  
    char s[101]; // 假设字符串长度不超过100  
    scanf("%s", s); // 读取字符串      
    int result = areAllCharsUnique(s);  
    printf("%d\n", result);  
    return 0;  
}
资产最多的老板
    scanf("%d", &n);
    scanf("%d", &m);

    int accounts[n][m];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &accounts[i][j]);
        }
    }
    int max_wealth = 0;
    for (int i = 0; i < n; i++) {
        int wealth = 0;
        for (int j = 0; j < m; j++) {
            wealth += accounts[i][j];
        }
        if (wealth > max_wealth) {
            max_wealth = wealth;
        }
    }
    printf("%d\n", max_wealth);
    return 0;
低于平均值
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int below[])
{
   int sum=0,num=0,i=0; float ave;
   for(i=0;i<m;i++)
   {sum+=score[i]; ave= (float) sum/m;} //sum 改成 (float) sum
   for(i=0;i<m;i++)
   {if(score[i]<ave) below[num++] = score[i]; } //num++ 改成 below[num++] = score[i]
   return num;
}
int main()
{  int i,n,below[9];
   int score[9];
   for(i=0;i<9;i++)
      scanf("%d",&score[i]);
   n=fun(score,9,below);
   for(i=0;i<n;i++)
      printf("%d ",below[i]);
}
搬砖头
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
// 请在此添加代码
/********** Begin *********/
int fn(int n){
 static int dp[10000] = {0}; // 假设n不会超过10000,初始化数组
    if (n <= 1) {
        return 1; // 如果只有0或1块砖头,只有一种搬运方法
    }
    if (dp[n] != 0) {
        return dp[n]; // 如果已经计算过,直接返回结果
    }
    // 递归计算搬运n块砖头的方法数
    dp[n] = fn(n - 1) + fn(n - 2);
    return dp[n];
}
/********** End *********/

int main(){
    int n;
    scanf("%d",&n);
    int numOfWays = fn(n);
    printf("%d",numOfWays);
    return 0;
}
孔融分梨
#include <stdio.h>
int Gcd(int a, int b);
int main(void)
{
    int m, n, f;
    scanf("%d,%d", &m, &n);
    f = Gcd(m, n);
    if (f != -1)
    {
        printf("%d/%d\n", m / f, n / f);
    }
    else
    {
        printf("Input error!\n");
    }
    return 0;
}

int Gcd(int a, int b)
{
      if (a < 1 || b < 1 || a > 10000 || b > 10000) {//
        return -1;//
    } // 检查输入是否在有效范围内
    int r;
     // 使用辗转相除法计算最大公约数
    while ((r = a % b) != 0) {//
        a = b;//
        b = r;//
    }
    return b;
}
兔子繁殖问题
#include <stdio.h>
int fib(int n);
int main(void)

    int i,n;
    scanf("%d",&n);
    for (i=1;i<=n;i++) //求解20个月
    { 
        if((i-1)%4==0) printf("\n");
            printf("%5d只兔子",fib(i));
    }
        printf ("\n");
    return 0;
}
int fib(int n)     //递归函数

    if (n <= 1) {
        return n;
    }
    
    int prevPrev = 0, prev = 1, current;
    for (int i = 2; i <= n; i++) {
        current = prevPrev + prev;
        prevPrev = prev;
        prev = current;
    }
    return prev;
}
计算题练习模拟
    #include <stdio.h>
    int Add(int a, int b)
    {
       return a+b; //这里加一句
    }
    void Print(int flag, int chance)  //void Print部分不改
    {
       if (flag)
          printf("Right!\n");
       else if(chance < 3)
          printf("Not correct. Try again!\n");
       else
          printf("Not correct. You have tried three times!\nTest over!\n");
    }
    int main()
    {
       int  a, b, answer, chance;
       printf("Input a, b:\n");
       scanf("%d,%d", &a, &b);
       chance = 0;
       do //do部分要改
       {
        printf("%d+%d=", a, b); //输出加法格式
        scanf("%d", &answer); // 获取用户输入的答案
        // 判断用户答案是否正确
        if (answer == Add(a,b)) {
            Print(1, chance); // 如果正确,输出"Right!"
            break;
        } else {
            chance++;
            Print(0, chance); // 如果错误,输出错误信息
        }
    } while (chance < 3); // 只有当尝试次数少于3次时才继续
       return 0;
    }
读入学生信息并统计
#include  <stdio.h>
#define ARR_SIZE 30
int ReadScore(long num[], float score[]);
int main(void)
{
    int n;
    float score[ARR_SIZE];
    long num[ARR_SIZE];
    printf("Please enter num and score until score<0:\n");
    n = ReadScore(num, score);
    printf("Total students:%d\n", n);
    return 0;
}
//函数功能:从键盘输入一个班学生某门课的成绩及其学号
//当输入成绩为负值时,输入结束,函数返回学生总数
int ReadScore(long num[], float score[])
{
       int count = 0;
    while (count < ARR_SIZE) {
        scanf("%ld %f", &num[count], &score[count]);
        if (score[count] < 0) {
            break; // 结束输入
        }
        count++;
    }
    return count;
输入整数数组 arr ,找出其中最小的 k 个数
#include<stdio.h>
void sort(int arr[], int n) {
    int i, j, min_idx, temp;
    // 外层循环遍历整个数组
    for (i = 0; i < n - 1; i++) {
        // 假设当前索引的元素是最小的
        min_idx = i;

        // 内层循环找到真正的最小元素
        for (j = i + 1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }
        // 将找到的最小元素与当前位置的元素交换
        temp = arr[i];
        arr[i] = arr[min_idx];
        arr[min_idx] = temp;
    }
}
int main()
{  
    int n,k;
    int arr[100],i;
    scanf("%d",&n);
    for(i=0;i<n;i++) 
        scanf("%d",&arr[i]);
    scanf("%d",&k);   
    sort(arr,n);
    for (i=0;i<k;i++)   //打印最小的K个数 
        printf("%d ",arr[i]);   
    return 0;  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值