由用户输入一个数,构造相应的所有 N×N 阶的拉丁方阵(2≤N≤9),使方阵中的每一行和每一列中数字1到N只出现一次。如N=4时,其中一个拉丁方阵为:
#include<stdio.h>
int main()
{
int i,j,k,t,N;
scanf("%d", &N);
for(j=0;j<N;j++)//某种情况的开头数字,即第 j 种情况
{
for(i=0;i<N;i++)//行数
{
t=(i+j)%N;
for(k=0;k<N;k++)//一行N个计数
printf("%d",(k+t)%N+1);//规律
printf("\n");
}
//以上for循环是一种拉丁方阵情况
printf("\n");
}
return 0;
}
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。
#include<stdio.h>
int main()
{
int a,m;
scanf("%d",&a);
if (a%2!=0)//2和4最小公倍数判断奇数
{
printf("0 0\n");
}
else if (a%4!=0)//判断鸡兔关系
{
printf("%d %d\n",a/4+1,a/2);//除以4仍有余数加1
}
else
{
printf("%d %d\n",a/4,a/2);
}
return 0;
}
用c语言实现10`名裁判给某歌手打分(假定分数都为整数)。评分原则是去搞一个最高分,去掉一个最低分,剩下分发的平均值即为该歌手的最终得分。编写一个程序,每个裁判所给的分数由键盘输入,要求屏幕输出歌手的最终得分并按歌手成绩进行排序。
#include <stdio.h>
#include <limits.h> // 用于INT_MAX和INT_MIN
#define NUM_JUDGES 10 // 裁判数量
// 函数声明
void calculateAndSortScores(int scores[], int numJudges);
int main() {
int scores[NUM_JUDGES]; // 存储10名裁判的分数
int i;
// 输入10名裁判的分数
printf("请输入10名裁判的分数:\n");
for (i = 0; i < NUM_JUDGES; i++) {
scanf("%d", &scores[i]);
}
// 计算并排序得分
calculateAndSortScores(scores, NUM_JUDGES);
return 0;
}
// 计算并排序得分的函数
void calculateAndSortScores(int scores[], int numJudges) {
int i, j, maxIndex, minIndex;
int temp;
float finalScore;
// 找出最高分和最低分的索引
maxIndex = minIndex = 0;
for (i = 1; i < numJudges; i++) {
if (scores[i] > scores[maxIndex]) {
maxIndex = i;
}
if (scores[i] < scores[minIndex]) {
minIndex = i;
}
}
// 去掉一个最高分和一个最低分
for (i = minIndex; i < numJudges - 1; i++) {
scores[i] = scores[i + 1];
}
for (i = maxIndex; i < numJudges - 1; i++) {
scores[i] = scores[i + 1];
}
// 计算剩余分数的平均值
finalScore = 0;
for (i = 0; i < numJudges - 2; i++) {
finalScore += scores[i];
}
finalScore /= (numJudges - 2);
// 输出最终得分
printf("歌手的最终得分为:%.2f\n", finalScore);
// 对所有歌手的最终得分进行排序(这里只有一个歌手,所以只输出一个得分)
// 如果有多个歌手,可以在外部循环中调用这个函数,并在此处实现排序逻辑
}
已知 A,C 是4位完全平方数,B是一个4位数,且每一位的数字都相同。已知C=A-B,编程求出满足上述条件的所有 A,B,C组合。
#include <stdio.h>
#include <math.h>
// 函数用于检查一个数是否为完全平方数
int isPerfectSquare(int num) {
int root = (int)sqrt(num);
return root * root == num;
}
// 函数用于检查一个四位数是否所有位上的数字都相同
int isSameDigit(int num) {
int firstDigit = num / 1000;
while (num > 0) {
if (num % 10 != firstDigit) return 0;
num /= 10;
}
return 1;
}
int main() {
int A, C, B;
// 遍历所有可能的四位数完全平方数
for (int i = 32; i <= 99; i++) { // 因为32^2 = 1024, 99^2 = 9801
A = i * i;
if (isPerfectSquare(A)) {
// 遍历所有可能的B
for (B = 1111; B <= 9999; B += 1111) { // B每一位数字都相同
if (isSameDigit(B)) {
C = A - B;
if (isPerfectSquare(C)) { // 检查C是否为完全平方数
printf("A: %d, B: %d, C: %d\n", A, B, C);
}
}
}
}
}
return 0;
}