标签:
(1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。
#include<stdio.h>
#define NUM 20
int main()
{
int a[NUM]={1,2,3,4,5,6,7,8,9,10};
int i=1;
for(i=NUM-10;i<NUM;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
printf("%d ",a[i]);
if((i+1)%5==0)
printf("\n");
}
return 0;
}
#include<stdio.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i;
printf("变化之前\n");
for(i=9;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
printf("数据变化两倍\n");
for(i=9;i>=0;i--)
{
a[i]*=2;
printf("%d ",a[i]);
}
printf("\n");
return 0;
}#include<stdio.h>
int main()
{
int a[16]={15,64,67,19,35,42,6,25,39,48,67,51,62,35,33,59};
int i;
printf("元素值为3的倍数的数:\n");
for(i=0;i<16;++i)
{
if((a[i]%3)==0)
printf("a[%d] %d\n",i,a[i]);
}
printf("以下为3的倍数元素值:\n");
for(i=0;i<16;++i)
{
if(i%3==0)
printf("a[%d] %d\n",i,a[i]);
}
return 0;
}#include<stdio.h>
int main()
{
int a[16]={36,39,13,46,24,45,34,16,34,84,33,18,99,14,36,24};
int b[16];
int i,j=0,k;
printf("原数列:");
for(i=0;i<16;++i)
{
printf("%d ",a[i]);
if((a[i]%3)==0)
{
b[j]=a[i];
j++;
}
}
k=j;
j=0;
printf("\n以下数是3的倍数:");
for(i=0;i<k;++i)
{
a[i]=b[j];
j++;
printf("%d ",a[i]);
}
printf("\n");
return 0;
}#include<stdio.h>
int main()
{
int a[16]={12,35,64,36,46,3,57,24,7,53,35,94,91,76,64};
int i,b;
printf("请输入整数b:");
scanf("%d",&b);
for(i=14;i>=0;--i)
{
a[i+1]= a[i];
}
a[0]=b;
printf("\n加入b数值后为:");
for(i=0;i<16;i++)
{
printf("%d ",a[i]);
}
return 0;
}
#include <stdio.h>
#include<math.h>
int main()
{
int a[50];
int i,s=0,max=0,min=100;
int minnum,maxnum,num,ave;
printf("请输入学生人数:");
scanf("%d",&num);
printf("请输入成绩:\n");
for(i=0;i<num;i++)
{
printf("输入第%d位同学成绩:",i+1);
scanf("%d",&a[i]);
if(a[i]>100||a[i]<0)
{
printf("输入错误!请重新");
i--;
continue;
}
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
s=s+a[i];
}
ave=s/num;
printf("\n最高成绩为:%d, 最低成绩为:%d, ",max,min);
printf("平均成绩为:%d\n",ave);
maxnum=0;
minnum=0;
for(i=0;i<num;i++)
{
if(a[i]==max)
maxnum++;
if(a[i]==min)
minnum++;
}
printf(" %d位同学考了最高分%d分, 学号为:",maxnum,max);
for(i=0;i<num;i++)
{
if(a[i]==max)
printf("%d ",i+1);
}
printf("\n %d位同学考了最低分%d分, 学号为:",minnum,min);
for(i=0;i<num;i++)
{
if(a[i]==min)
printf("%d ",i+1);
}
int x=0,sum=0;
for(i=0;i<num;i++)
{
x=a[i]-ave;
sum+=x*x;
}
printf("\n4所有同学的标准偏差为:%.4f\n",sqrt((double)(sum)/(num-1)));
return 0;
}
运行结果:
当年第几天中定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。
#include <stdio.h>
int days(int y,int m,int d);
int main()
{
int year,month,day;
printf("请输入年 月 日:");
scanf("%d %d %d",&year,&month,&day);
printf("今天是当年第%d天\n",days(year,month,day));
return 0;
}
int days(int y,int m,int d)
{
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum=d,i;
for(i=1;i<=(m-1);i++)
sum=sum+a[i];
if(m>2&&((y%4==0&&y%100!=0)||y%400==0))
sum++;
return sum;
}运行结果:下面的程序,输出了52张扑克牌(如图),请补充完整程序。
#include <stdio.h>
int main()
{
char c[4]={6,3,5,4};
int v[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<13;j++)
{
printf("%c",c[i]);
if(v[j]==1)
printf("A");
else if(v[j]==11)
printf("J");
else if(v[j]==12)
printf("Q");
else if(v[j]==13)
printf("K");
else
printf("%d",v[j]);
printf(" ");
}
printf("\n");
}
return 0;
}运行结果:(1)过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元(在程序中可以用常量固定为一个数)。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只 有一个人得奖,奖金都归这个人。如 果有多于一个人得奖,则他们平分这 笔钱。现在让我们来写一段程序算算 都有哪些人得到了奖金?得到多少?请写出这个程序。
(2)有村民提出村长在幸运数字上做手脚,不公平。修改后的规则是:每人写一个1000以内的数字,谁写的数字与平均值最接近,M元的奖金就由谁拿,有多人与平均值差值相同,则均分。例如,参加的村民有5个人,报的数字分别为98、7、50、980、1,平均值为227(平均值也取成整数就行了),与98最接近,编号为0的村民得奖。这个游戏实际上有很强的政治学背景,一种策略是串通,大家都报一样的数,平分奖金;在每个人都想争取最大利益的前提下,各人报的数字又对结果都有影响,这里面包含一系列非常有意思的研究课题。
提示:输入数据后,用一次循环求和,进而求出平均值;再一次循环,求出最小的差值;再一次循环,将差值最小的村民的编号放入幸运数组(因为可能不止一位,所以需要这个数组)。#include<stdio.h>
#define M 2014
#define num 128
int main()
{
int people[num];
int luckypeople[num];
int i,luckynum=0;
for(i=0;i<num;i++)
{
printf("第%d位村民请输入数字:",i);
scanf("%d",&people[i]);
if(people[i]==M)
{
luckypeople[luckynum]=i;
luckynum++;
}
}
if(luckynum>0)
{
printf("\n获奖者编号为:\n");
for(i=0;i<luckynum;i++)
{
printf("%d ",luckypeople[i]);
}
}
else
printf("\n很可惜,没有人获奖\n");
return 0;
}
#include<stdio.h>
#define N 8
int main()
{
int peoplenum[N]; //每个人的报数
int avenum[N]; //每人报的数与平均数的差值
int luckypeople[N]; //中奖人的编号
int i,sum=0,ave,min=1000;
int luckynum=0,m,money;
for(i=0;i<N;i++) // 录入每人的数字
{
scanf("%d",&peoplenum[i]);
sum+=peoplenum[i]; // 求和
}
ave=sum/N; // 求平均数
for(i=0;i<N;i++) // 录入每人报的数与平均数的差值
{
avenum[i]=ave-peoplenum[i];
if(avenum[i]<0) // 绝对值
avenum[i]=-avenum[i];
if(avenum[i]<min) // 求最小的差值min
min=avenum[i];
}
for(i=0;i<N;i++) // 差值最小即中奖人,并录入其编号
if(avenum[i]<=min)
{
luckypeople[luckynum]=i;
luckynum++; // 中奖人共luckymun人
}
money=2014/luckynum; // 奖金平分
printf("\n平均数:%d, ",ave);
printf("最小差值:%d\n",min);
printf("共%d人中奖\n",luckynum);
for(i=0;i<luckynum;i++) // 输出中奖人
{
m=luckypeople[i];
printf("幸运者编号:%d 数字为:%d 获得奖金:%d\n",m,peoplenum[m],money);
}
return 0;
}
标签:
原文地址:http://blog.csdn.net/benjavan4641/article/details/50839699