键盘读入整数,以0结束,根据题目要求编写程序

版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/87886541

(一)题目1

1. 题目

从键盘读入N个整数,以0为结束,输出这些整数,整数的个数,并求出现次数最多的整数,整数的大小从1到100,N<100.例如:输入:2 12 2 5;输出:2 12 2 5 4 2

2. 代码

#include <stdio.h>
int main() {
	int a[100];
	//max:最大值的次数,date:最大值
	int i,j,n=0,max,date,num,temp;
	//从键盘读入N个整数,以0为结束
	printf("请输入需要读入的整数:\n");
	scanf("%d",&a[n]);
	while(a[n]!=0) {
		n++;
		scanf("%d",&a[n]);
	}
//求出出现最多的数date
	for(i=0; i<n; i++) {
		num =0;
		for(j=0; j<n; j++) {
			if(a[i]==a[j])
				num++;
		}
		if(max<num) {
			date = a[i];
			max = num;
		}
	}
	
	for(i=0;i<n;i++)
		printf("%d ",a[i]);
	printf(" %d %d ",n,date);
	return 0;
}

(二)题目2

1. 题目

输入一个升序序列,以0结束,输出该序列,统计序列中的数字个数,将指定位置后的数字逆序。例如输入2,3,4,67,89,0 输出2,3,4,67,89
输出个数为5,输入3,输出2,3,89,67,4

2. 代码

#include <stdio.h>
#define max 100
int main() {
	int a[max];
	int i=0,j,num;
	printf("请输入一个升序序列(数字之间使用空格间隔):\n");
	scanf("%d",a);
	while(a[i]!=0) {
		i++;
		scanf("%d",&a[i]);
	}
	//输出数字,将0省去
	for(j=0; j<i; j++) {
		if(j<i-1)
			printf("%d,",a[j]);
		else printf("%d\n",a[j]);
	}
	printf("数字个数为%d个\n",i);
	printf("请输入将第几个数字以后的变为数字逆序");
	scanf("%d",&num);
	//前(num-1)个数字按升序输出
	for(j=0; j<num-1; j++)
		printf("%d,",a[j]);
	//从num个数字开始逆序输出
	for(j=i-1; j>=num-1; j--) {
		if(j>num-1)
			printf("%d,",a[j]);	//如此操作只为格式数字间以逗号隔开
		else printf("%d\n",a[j]);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/nanhuaibeian/article/details/87886541
今日推荐