【C语言答案】第四次练习---循环进阶

以下题目是由老师布置的《 谭浩强C程序设计(第四版)》的oj第四次练习题,共五道
使用软件是Devc++5.11。

【抄了作业记得给俺点个赞,谢谢,爱宁】

A. C语言_ex03_02

运行时间限制: 1000 运行内存限制: 65536

题目描述

输入为2行,第一行为整数n(1<n<200)。第二行为n个整数,这些整数均大于-10000且小于10000。
输出
只有一行,为用一个空格分隔的两个整数,依次为这n个整数中的最小值和最大值,中间用一个空格分隔。

输入样例
10
1 2 6 7 8 9 10 3 4 5

输出样例
1 10

#include<stdio.h>
int main()
{
	int n,i,num,max=-10000,min=10000;//这道题的坑就是初始化!
	scanf("%d",&n);

	for(i=0;i<n;i++)
	{
		scanf("%d",&num);
		if(num>max)
		max=num;
		if(num<min)
		min=num;//初学者可能不喜欢写在一个循环里?这样方便些
	 } 
	printf("%d %d",min,max);
 }  

B. C语言_ex03_03

运行时间限制: 1000 运行内存限制: 65536

题目描述

输入为两个正整数a和b,(1<a,b<1000)

输出:
当a小于b时,计算开区间(a,b)中的所有素数,并按升序输出,当a>=b时,或该区间没有素数则输出error。
注意:输出的素数之间用一个空格分隔,最后一个素数后面没有空格。

输入样例
10 20

输出样例
11 13 17 19

#include<stdio.h>
int main()
{
	int a,b,i,j,ans[1000]={0},p,q=0;
	scanf("%d %d",&a,&b);
	if(b<=a)
	printf("error");
	else if(a<b)
	{
		for(i=a+1;i<b;i++)//开区间是从a+1算到b-1 
		{
			p=0;
			for(j=2;j<i;j++)//这个for判断素数 
			{
				if(i%j==0)
				{
					p++;
					break;//能除开就不是素数,不用继续算了 
				}	 		 
			}
			if(p==0) //把素数加进答案数组里 
			{
				printf(" %d",i);
				q++;
			}		 
		}
		if(q==0)//没有素数 
		{
		 	printf("error");	
		}
	}
	else 
	printf("error");
 } 

C. C语言_ex03_04

运行时间限制: 1000 运行内存限制: 65536

题目描述

写一程序,输入三个整数a, b, c,(1<a,b,c<5000)

输出为满足方程ax+by=c,(0<x,y<100)的所有整数解,
要求:
1、每行输出一组解,x,y中间用一个空格分隔;
2、按(x,y)字典序升序输出所有解。
测试数据保证至少有一组解。

输入样例
10 30 100

输出样例
1 3
4 2
7 1

#include<stdio.h>
int main()
{
	int a,b,c;
	int x,y;

	scanf("%d %d %d",&a,&b,&c);
	for(x=1;x<101;x++)
	{
		for(y=1;y<101;y++)
		{if (a*x+b*y==c)
		printf("%d %d\n",x,y);}
	}return 0;
} 

D. C语言_ex03_05

题目描述

输入为一个正整数,该正整数小于2的31次方。
输出:
将该数的各位数字逆序输出。

输入样例
12345

输出样例
54321

{
#include<stdio.h>
int main()
	//2的31次方是10位数 ,全部数字都要用lld
	long long int n,i,ans;
	scanf("%lld",&n);
	for(i=1;n/i!=0;i=i*10)//结束的条件是,这一位直接取整等于0,也就是说在上面没有数字了。
	{
		ans=n%(i*10)/i;//把这一位以前的用取余的办法去掉,然后对这一位求整,看他是几然后直接输出。
		printf("%lld",ans);
	}
}

E. C语言_ex03_06

题目描述

输入为一个以换行符”\n”结尾的字符串,字符串长度大于0且小于200。
输出共两行,
第一行为将该字符串中的小写字母替换为大写字母后的字符串。
第二行为一个整数,为该字符串中所有元音字母的个数。

输入样例
tyu67812NBM/.,8812h

输出样例
TYU67812NBM/.,8812H
1

{
#include<stdio.h>
int main()
	char a;
	int i,n=0;
	while(a!='\n')
	{
		scanf("%c",&a);
		if(a>='a'&&a<='z')//这样判断就可以,不用纠结a是几
			a=a-32;
		printf("%c",a);
		
		if(a=='A'||a=='E'||a=='I'||a=='O'||a=='U')
		n++;
	}
	printf("\n%d",n);
	
	
} 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值