当前位置:编程学习 > C/C++ >>

C语言程序设计,求详解

【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

【程序17】
题目:输入一行字符,分别统计出其中字母、空格、和数字的个数。

【程序23】
题目:打印出如下图案(总行数为双数,由键盘输入)

*
***
*****
*******
*****
***
*

【程序29】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

【程序37】
题目:输入10个正整数,对10个数进行从小到大进行排序,再输出。

追问:23题要求从键盘输入的
答案:参考答案:37)#include "stdio.h"
#define N 10
main()
{
int i,j,min,tem,a[N];
printf("please input ten num:\n");
for(i=0;i<N;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");

for(i=0;i<N-1;i++)
{
min=i;
for(j=i+1;j<N;j++)
if(a[min]>a[j])
min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}

printf("After sorted \n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
}

29)#include "stdio.h"
main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
else if (e!=0) printf(" there are 1,%ld\n",e);
}

17)#include "stdio.h"
main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others);
}

23)#include "stdio.h"

void main()
{
int i,k;
for(i=0;i<=3;i++)
{
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{


for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}

1)#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}

兄弟   五分太少········多点我给你做

这些问题很经典 自己写吧 5分我认为没人会帮你写的

#include<stdio.h>
void main()
{
int hang;
int i;
int j = 0;
for (hang = 1; hang <= 7; hang ++)
{
if (hang <= 4)
{
for (i = 1; i <= 2 * hang - 1; i++)
printf("* ");
printf("\n\n\n");
}
else
{
for (i = 1; i <= 15 - 2 * hang; i++)
printf("* ");
printf("\n\n\n");
}
}
}

帮你写一个算了

题一、

#include<stdio.h>
void main()
{
int i;
for(i=0;i<50;i++)
printf("*");
printf("\n*有1、2、3、4个数字,能组成多少个互不相同且无重复*\n*数字的三位数?都是多少?%24c*\n",' ');
for(i=0;i<50;i++)
printf("*");
printf("\n");
}

题17、

#include<stdio.h>
void main()
{
char n[80];
int i,a=0,b=0,c=0,d=0;
printf("\n 请输入小于80位的字符串:\n");
gets(n);
for(i=0;i<80;i++)
{
if(n[i]=='\0')
break;
else if(('a'<=n[i])&&(n[i]<='z')||('A'<=n[i])&&(n[i]<='Z'))
a++;
else if('0'<=n[i] && n[i]<='9')
b++;
else if(n[i]==' ')
c++;
else
d++;
}
printf("\n字母有%d个;\n数字有%d个;\n空格有%d个;\n其它字符有%d个。\n",a,b,c,d);
}

题23、

#include<stdio.h>
#include<math.h>
void main()
{
int j,i,k,n;
printf("请输入行数(双数):");
scanf("%d",&n);
for(i=1;i<=(n+1)/2;i++)
{
j=2*i-1;
for(k=0;k<j;k++)
{
printf("*");
}
printf("\n");
}
for(i=(n+1)/2-1;i>=1;i--)
{
j=2*i-1;
for(k=0;k<j;k++)
{
printf("*");
}
printf("\n");
}
}

程序29、

#include<stdio.h>
void main()
{
int m,a,i,j=0,sum,b,c,d,e;
printf("\n 请输入一个不大于5位的整数:");
scanf("%d",&m);
e = m%10;
d = (m/10)%10;
c = (m/100)%10;
b = (m/1000)%10;
a = m/10000;
sum = m;
printf("第四位数是:%d ;\n第三位数是:%d ;\n第二位数是:%d ;\n第一位数是:%d ; \n第零位数是:%d ;\n",a,b,c,d,e);
for(i=0;i<5;i++)
{
m=m/10;
j++;
if(m==0)
{
printf("这个整数有%d位\n",j);
break;
}
}
printf("这个数按逆序打印出的数是:");
m = sum;
for(i=0;i<j;i++)
{
sum = m%10;
m = m/10;
printf("%d",sum);
}

printf("\n");
}

程序37、

#include<stdio.h>
main()
{
int i,j,t;
int a[10];
printf("输入10个不同的整数:\n");
for(i=0;i<10;i++)
{
printf("第%d个:",i);
scanf("%d",&a[i]);
}
printf("排序前的数组:");
for(i=0;i<10;i++)
{
printf("%3d",a[i]);
}
printf("\n");
for(i=0;i<10-1;i++)
{
for(j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的数组:");
for(i=00;i<10;i++)
{
printf("%3d",a[i]);
}
printf("\n");
}

来晚了。。。貌似问题都解决了。。。给你一个好的思路。。

/1/1 =>29

#include<stdio.h>
int main()
{
int i,num,count=0,a[10];
printf("请给出一个数");
scanf("%d",&num);
while(num>0)
{
a[count]=num%10;
num/=10;
count++;
}
printf("它是%d位数\n",count);
printf("逆序为:");
for(i=0;i<count;i++)
{
printf("%d",a[i]);

}


fflush(stdin);
getchar();
}

上一个:c语言程序,急啊
下一个:怎样才能学好c语言?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,