C语言习题 联系客服

发布时间 : 星期四 文章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; }