求助各位C语言编程高手~帮我做3道题~
第一道:(太晚了,困了,没时间写注释,不好意思)
#include
#include
#include
int compare(int *a,int n)
{
int temp;
if(a[0]>a[1])
temp=a[0];
else
temp=a[1];
if(temp<a[2])
temp=a[2];
return temp;
}//compare
void main()
{
int a[3];
char str[3][10];
char *p;
int i,j,count;
printf("Please input the data.
");
for( i=0;i<3;i++)
{
gets(str[i]);
p=str[i];
while(*p!='\0')
{
if(*p>='0'&&*p<='9')
p++;
else
{
printf("Data error!Please try again!
");
i--;
break;
}//else
}//while
}//for
for( i=0;i<3;i++)
{
puts(str[i]);
count=0;
for(j=0;j<strlen(str[i]);j++)
{
count*=10;
count=count+(int)str[i][j]-48; //减去48是把字符型的ASCII码转换成本身代表的整数
}//for
a[i]=count;
}//for
printf("The max number is:%d.
",compare(a,3));
}//main
第二道条件太少,不知道楼主到底想怎样的分寝室。
第三道:
#include
void main()
{
int i,j,count,m=0;
for(i=2;i<=1000;i++)//1不是素数
{
count=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{ count++;
break;
}
}//for
if(count==0)
{ printf("%d",i);
m++;
}//if
if(m==5)
{
printf("
");
m=0;
}//if
}//for
}//main
补充:(时间匆忙,没时间编译。)
#include
void main()
{
int person;
printf("Please input the number of person!");
scanf("%d",&person);
if(person%6==0)
printf("The number of dormitory is %d",person/6);
else
printf("The number of dormitory is %d",person/6+1);
}//main
1.
#include
int fn(int a,int n)
{
int count,sum=0,b=0;
for(count=1;count<=n;count++)
{
b+=a;
sum+=b;
a=a*10;
}
return sum;
}
main()
{
int a,n,sum=0;
printf("input a and n:");
scanf("%d%d",&a,&n);
sum=fn(a,n);
printf("a+aa+aaa+...=%d",sum);
}
2.
#include
#include
int dist(int x1,int y1,int x2,int y2)
{
return (int)sqrt(abs(x1-x2)*abs(x1-x2)+abs(y1-y2)*abs(y1-y2));
}
main()
{
int x1,x2,y1,y2,s;
printf("input a and n:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
s=dist(x1,y1,x2,y2);
printf("distance=%d",s);
}
3.
#include
#include
int countdigit(int number,int digit)
{
int count=0;
do
if(number%10==digit)
count++;
while(number/=10);
return count;
}
main()
{
int number,digit,s;
printf("input a and n:");
scanf("%d%d",&number,&digit);
s=countdigit(number,digit);
printf("%d",s);
}
//全部实现 验证成功
#include <string.h>
#define N 4
/*-----------------------------------------
第一题
-------------------------------------------*/
void Diamond(const char* s, int n, int len)
{
printf("%*s%-s\n", len, s + n - 1, s + n);
if(n > 1)
Diamond(s, n - 1, len);
printf("%*s%-s\n", len, s + n, n == len ? s + n : s + n + 1);
}
/*-----------------------------------------
第二题
-------------------------------------------*/
typedef struct
{
int gcd;
int lcm;
}pair;
void GCD_LCM(int a, int b, pair * p)
{
int tmp;
int product = a * b;
while(b % a)
{
tmp = a;
a = b % a;
b = tmp;
}
p->gcd = a;
p->lcm = product / a;
}
/*-----------------------------------------
第三题
-------------------------------------------*/
void Swap(int* lhs, int* rhs)
{
int tmp = *lhs;
*lhs = *rhs;
*rhs = tmp;
}
void BubbleSort(int* beg, int* end)
{
for(; beg != end; ++beg)
for(int* p = end - 1; p != beg; --p)
if(*p < *(p - 1))
Swap(p, p - 1);
}
void SelectSort(int* beg, int* end)
{
for(; beg != end; ++beg)
{
int* max = beg;
for(int* p = beg + 1; p != end; ++p)
if(*max < *p)
max = p;
Swap(beg, max);
}
}
void Print(int* beg, int* end)
{
while(beg != end)
printf("%d ", *beg++);
putchar('\n');
}
int main()
{
/*一*/
char pt[N+1] = {0};
memset(pt, '*', N);
Diamond(pt, N, N);
/*二*/
pair p;
GCD_LCM(3, 6, &p);
printf("%d %d\n", p.gcd, p.lcm);
/*三*/
int a[] = {32, 9, 45, 22, 15, 48, 47, 8, 55, 1};
Print(a, a + 10);
BubbleSort(a, a + 10);
Print(a, a + 10);
SelectSort(a, a + 10);
Print(a, a + 10);
}
第一题有人写了,我就不回了。
第二题:
1、冒泡法:
#include "stdio.h"
void Print(int a[10],int n);
void Order(int a[10],int n);
main()
{
int a[10]={32,9,45,22,15,48,47,8,55,1};
Print(a,10);
Order(a,10);
Print(a,10);
}
void Print(int a[10],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
void Order(int a[10],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
2、选择法:
#include "stdio.h"
void Print(int a[10],int n);
void Order(int a[10],int n);
main()
{
int a[10]={32,9,45,22,15,48,47,8,55,1};
Print(a,10);
Order(a,10);
Print(a,10);
}
void Print(int a[10],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
void Order(int a[10],int n)
{
int i,j,temp,m;
for(i=0;i<n;i++)
{
m=i;
for(j=i+1;j<n;j++)
{
if(a[m]>a[j])
{
m=j;
}
}
if(m!=i)
{
temp=a[m];
a[m]=a[i];
a[i]=temp;
}
}
}
第三题:
#include "stdio.h"
#include "math.h"
main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=1;j<=fabs(4-i);j++)
{
printf(" ");
}
for(j=1;j<=(4-fabs(4-i))*2-1;j++)
{
printf("*");
}
printf("\n");
}
}
以上三个程序均经过Turbo C2.0调试通过,结果正确。
很简单的嘛!
晚上帮你做
求C语言编程题,求助各位大神,谢谢~ 输入10个整数,将它们从大到小排序...
答:include <stdio.h>#include <conio.h>#define LEN 100 /*数组长度上限*/#define elemType int /*元素类型*//*输入数组*/void inputArr (elemType arr[], int len) {int i;for (i=0; i<len; i++)scanf ("%d",&arr[i]);putchar ('\n');}/*打印数组*/void printArr (elemType ...
C语言编程题 望大家帮忙。
答:此程序我已经测试过,完全通过,放心.
C语言编程高手请进~~~请一定要帮帮忙,万分感谢~~~!!!小虾米自己实在是能...
答:第1题题目表述不清,普通的二叉树的合并没有任何意义,如果是二叉排序树还差不多。若非要进行普通的二叉树的合并,只要将一个树的插入到另一个树的度非2的结点上,最简便的做法是沿着另一个树的根一直遍历到左子树的叶子结点,不过这没有意义。要是这样的话,此题太简单了,自己实现吧!!第2题 ...
跪求编程大神~用c语言编个程序
答:Elem_Type *array,int len){ for(int i=0; i<len; i++) if(array[i] == num) return i; //return -1;//没有找到} //前序遍历 中序遍历 中序数组长度BiTree *Resume_BiTree(Elem_Type *front,Elem_Type *center,int len){ if(len <= 0) return ...
哪位高手能帮我编以下c语言的程序
答:mov c,al mov y,ah mov cl,2 mov bl,c shr bl,cl ;int(c/4) shl c,1 ;2*c sub bl,c add bl,y shr y,cl ;int(y/4) add bl,y ;int(c/4)-2*c+y+int(y/4)--->bl inc Month xor ah,ah mov al,Month mov dx,13 mul dx mov cx,5 div cx xchg ax,bx cbw xchg ax,bx ...
求会C语言编程编程的师兄或高手帮我编个小游戏
答:scanf("%c",&ready);if(ready=='y' || ready=='Y'){ //获取当前时间 startTime = time(NULL);//cout<<nowtime<<endl;} //判断输入 for(i=0; i<30; i++){ printf("%d\n",num[i]);printf("please input %d number:", i+1);while(1){ scanf("%d",&inNum);if(inNum=...
高分悬赏急求哪位单片机C语言编程高手帮我翻译这个程序,由于要提问到...
答:// 只要32就可以了 define uint unsigned int // 宏定义“短表示”,方便书写 define uchar unsigned char // 同上 void lcd_mwc(uchar i) // 这个函数是用来写命令的:如启动液晶 // 锁定液晶等,可以查看液晶控制字就知道 // 0xb8和0x40是什么命令了,估计是启动 /***/ // 属...
求助,c语言高手进来帮忙编程
答:第2题没能按要求能输入考生人数,在函数中修改N值吧,我用的C++编译器,如要调试请注意用C++ 第二题你是不是新建为:名字.c源文件啊,新建为:名字.cpp就能运行了 因为我是用C++编译的...--- 楼主能说清楚哪个题运行不了吗,我这儿都能运行啊,你看看运行结果吧,附上截图了......
求助c语言编程高手,跪谢。
答:return TRUE;}void cx1( int n, int a[2] ){ int i,j; for( i=2; i<=n-2; i++ ) { j = n-i; if ( prime(i) && prime(j) ) { if ( i>j ) { a[0] = j; a[1] = i; } else { ...
请C语言编程高手帮忙帮我看看下面的题目
答:① 倒填 ② 蛇形填数 ③ 回转填数 这个你应该看的懂吧 你在表中从1数到25就知道怎么填的了 然后再看程序 应该很简单的啊 你得把程序循环得层次弄清楚 例如③ 回转填数 int i,j,k=1,m,mi,mj,a[NUM][NUM],ind[4]={NUM-1,NUM-1,0,1}; /*i为行号,j为列号,k当前填的数...