C程序算法题二

1.将一张百元大钞对换成1元、5元、10元的小钞,要求每种小钞最少要一张,编程求共有多少种对换方法

#include "stdio.h"
void main()
{
	int a,b,c,n;
	for(a=1;a<100;a++){
		for(b=1;b<20;b++){
			for(c=1;c<10;c++){
				if(a+b*5+c*10==100){
					n++;
				}
			}
		}
	}
	printf("一共有%d种方法", n);
}

2.鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,白钱买白鸡。问鸡翁、母、雏各几何?输出所有买法,每一种鸡至少要一只。

#include<stdio.h>

int main(){
	int roo,hen,chick;
	for(roo=1;roo<20;roo++){
		for(hen=1;hen<33;hen++){
			chick=100-roo-hen;
			if(roo*5+hen*3+chick/3==100){
				printf("roo:%d hen:%d chick:%d\n", roo, hen, chick);
			}
		}
	}
	return 0;
} 

3.利用指针统计一个字符串中,字母、空格、数字、及其它字符的个数

#include <stdio.h>

int main( )                      
{ 
    int alpha,digit,space,other;
    char s[80],*p;
    alpha=digit=space=other=0;
    printf("input string:\n");
    gets(s);
    for(p=s;*p!='\0';p++){
    	if((*p>='A' && *p<='Z')||(*p>='a' && *p<='z')){
    		alpha++;
		}else if(*p==' '||*p=='\t'){
			space++;
		}else if(*p>'0'&&*p<'9'){
			digit++;
		}else{
			other++;
		}
	}
	printf("alpha:%d digit:%d space:%d other:%d\n", alpha, digit, space, other);
	return 0;	
}

4.找出二维数组 a 中的最大元素,并要求输出该元素以及该元素的行号和列号,二维数组元 素可以从键盘输入也可以定义时直接赋初值

#include<stdio.h>

int main() 
{
	int a[3][4]={{1,2,334,3},{4,2,43,6654,},{98,9,59,599}};
	int i,j,imax,jmax;
	imax=jmax=0;
	for(i=0;i<3;i++){
		for(j=0;j<4;j++){
			if(a[i][j]>a[imax][jmax]){
				imax=i;
				jmax=j;
			}
		}
	}
	printf("The max number is:a[%d][%d]\n", imax, jmax);
	return 0;
} 

5.打印 2~500 间的全部素数,同时求其和。(只能被 1 和这个数自身整除的数叫素数)

#include<stdio.h>
#include<math.h>
int main() 
{  	 
	int m,k,i,leap=1,count=0,sum=0;
	for(m=2;m<=500;m++){
		k=sqrt(m+1);
		for(i=2;i<=k;i++){
			if(m%i==0){
				leap=0;//不是素数
				break; 
			}
		}
		if(leap){
			sum+=m;
			printf("%-4d", m);
			count++;
			if(count%10==0){
				printf("\n");
			}
		}
		leap=1;
	}
	printf("\nThe count is:%d", count);
	printf("\nThe sum is:%d", sum);
	return 0;
}

6.编程,在[1,98]查找并输出所有满足条件“x+x+1+x+2的平方根是整数”的数x(如输出2、11,因为2+3+4的和为9,11+12+13和为36,他们的平方根3、6都是整数)

#include <stdio.h>
#include<math.h>
void main()
{  
    int i,s;
	for(i=1;i<=98;i++) {
	    s=3*i+3;
		if(sqrt(s)==(int)sqrt(s)){
			printf("%d\n",i);
		}
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲代码的Harrison

从来无所求,所得皆惊喜。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值