第一题
蒜头君想当蒜国的总统,蒜国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持蒜头君,则他将赢得该州的支持.现在给出每个州的选民人数,请问蒜头君至少需要赢得多少选民的支持才能当选?
输入格式
输入包含多组测试数据.
每组数据的第一行是一个整数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
第一题
#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;
}
望采纳!