m0_63444449 2021-11-07 18:27 采纳率: 79.1%
浏览 107
已结题

大家看下c语言这俩题急

第一题
蒜头君想当蒜国的总统,蒜国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持蒜头君,则他将赢得该州的支持.现在给出每个州的选民人数,请问蒜头君至少需要赢得多少选民的支持才能当选?

输入格式
输入包含多组测试数据.

每组数据的第一行是一个整数N(1小于等于N小于等于101)N(1≤N≤101)、表示蒜国的州数,当N=0时表示输入结束.

接下来一行包括N个正整数,分别表示每个州的选民数,每个州的选民数不超过100

输出格式
对于每组数据输出一行,表示蒜头君至少需要赢得支持的选民数.

样本输入
3
5 7 5
0
样本输出
6

第二题
蒜头君喜欢图形,而且喜欢把图形倒过来欣赏。有一次,他看见杨辉三角形,觉得很新鲜。杨辉三角是如下三角形。可以发现杨辉三角的每个位置的值是左上角的值加上右上角的值。现在蒜头君选择前面 n行,然后把图形倒过来。但是蒜头君是手工画的,你却可以用编程更快捷地做出来,多爽啊!输入格式输入一行一个整数 n(1≤n≤5),表示选择的行数。输出格式输出 n行倒的杨辉三角(每一行相邻的数之间用一个空格隔开)。Sample Input4Sample Output1 3 3 1 1 2 1 1 1 1

  • 写回答

1条回答 默认 最新

  • 来把薯条 2021-11-07 20:01
    关注

    第一题

    #include <stdio.h>
    
    int main(void)
    {
        int a[200], n;
        scanf("%d", &n);
        while (n)
        {
            for (int i = 0; i < n; i++)
                scanf("%d", &a[i]);
    
            // 冒泡排序
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j + 1 < n - i; j++)
                {
                    if (a[j] > a[j + 1])
                    {
                        int t = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = t;
                    }
                }
            }
    
            int ans = 0;
            for (int i = 0; i < (n + 2) / 2; i++)
                ans += (a[i] + 2) / 2;
    
            printf("%d\n", ans);
            scanf("%d", &n);
        }
        
        return 0;
    }
    

    第二题

    #include <stdio.h>
    
    int a[50][50];
    
    int main(void)
    {
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                if (i == j || j == 0)
                    a[i][j] = 1;
                else
                    a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < i; j++)
                printf(" ");
            for (int k = 0; k < n - i; k++)
            {
                printf("%d", a[n - i - 1][k]);
                printf(" ");
            }
            if (i != n - 1)
                puts("");
        }
        return 0;
    }
    

    望采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况