发布时间 : 星期四 文章C语言习题更新完毕开始阅读f65e6f395fbfc77da369b1aa
//例7-1 调查电视节目受欢迎程度。某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,
//共调查了1000位观众,现要求编写程序,输入每一位观众的投票情况(每位观众只能选择一个最喜欢的栏目投票),
//统计输出各栏目的得票情况。 #include<stdio.h> int main(void) {
int a[9];
int i,response;
for (i=1;i<=8;i++) {
a[i]=0; }
for (i=1;i<=10;i++) {
printf("输入你最喜欢的栏目编号:"); scanf("%d",&response); if (response<1||response>8) {
printf("输入范围不合理!\\n");
i--; //输入范围不合理,可以重新输入,不计入输入次数 } else
a[response]++; }
for (i=1;i<=8;i++) {
printf("MM\\n",i,a[i]); }
return 0; }
//例7-2利用数组计算斐波那契数列的前十个数,即1,1,2,3,5,??55,并按每行打印5个数的格式输出。
#include <stdio.h> int main(void) {
int fib[10]={1,1}; int i;
for (i=2;i<10;i++) {
fib[i]=fib[i-1]+fib[i-2]; }
for (i=0;i<10;i++) {
printf("M",fib[i]); if ((i+1)%5==0) {
printf("\\n"); } }
return 0; }
//例7-3 顺序查找法。输入5个整数,将它们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的最小下标,否则,输出“Not Found”。 #include <stdio.h> int main() {
int i,x,flag; int a[5];
printf("输入5个整数:"); for (i=0;i<5;i++) {
scanf("%d",&a[i]); }
printf("输入一个数x:"); scanf("%d",&x); flag=0;
for (i=0;i<5;i++) {
if (x==a[i]) {
printf("%d\\n",i); flag=1; break; } }
if (flag==0)
printf("Not Found!\\n");
return 0; }
//例7-4 输入一个正整数n(1<n<=10),再输入n个整数,将它们存入数组a中。 //@1. 输出最小值和它所对应的下标;
//@2.将最小值与第一个数交换,输出交换后的n个数。 #include <stdio.h> int main(void) {
int i,n,index,min,t; int a[10];
printf("输入一个正整数n:"); scanf("%d",&n);
printf("输入%d个整数:",n); for (i=0;i<n;i++) {
scanf("%d",&a[i]); }
min=a[0]; index=0;
for (i=1;i<n;i++) {
if (min>a[i]) {
min=a[i]; index=i; } }
printf("最小值为%d,对应的下标为%d\\n",min,index);
t=a[index]; a[index]=a[0]; a[0]=t;
for (i=0;i<n;i++)
{
printf("M",a[i]); }
printf("\\n");
return 0; }
//例7-5选择排序法。输入一个正整数n(1<n<=10),再输入n个整数,用选择法将它们从小到大排序后输出。 *******
//思路:第一步:在未排序的n个数(a[0]~a[n-1])中找到最小数,将它与a[0]交换; // 第二步:在剩下未排序的n-1个数(a[1]~a[n-1])中找到最小数,将它与a[1]交换;
// .........
// 第n-1步:在剩下未排序的2个数(a[n-2]~a[n-
1])中找到最小数,将它与a[n-2]交换; #include<stdio.h> int main() {
int n,i,k,temp,index; int a[10];
printf("输入一个正整数n:"); scanf("%d",&n);
printf("输入%d个整数",n); for (i=0;i<n;i++) {
scanf("%d",&a[i]); } ////
for (k=0;k<n-1;k++) {
index=k;
for (i=k+1;i<n;i++) {
if (a[index]>a[i]) {
index=i; } }
temp=a[index]; a[index]=a[k]; a[k]=temp; }
printf("排序后:\\n"); for (i=0;i<n;i++) {
printf("M",a[i]); }
return 0; }