当前位置:首页 » 编程语言 » c语言简单编程题目两道求高手
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言简单编程题目两道求高手

发布时间: 2022-08-07 17:01:44

⑴ 求c语言高手,两道程序设计题

看谭浩强的c语言书里面有链表的创建,节点添加,删除,查找等等链表的操作,写的很完全

⑵ 求两道C语言编程题!!高手进。

第一题:
#include
int
max(int
m,int
n);
int
min(int
m,int
n);
int
x,y;
//x为最大公约数,y为最小公倍数
void
main()
{
int
m,n;
cout<<"请输入2个正整数:";
cin>>m>>n;
cout<<"最大公约数为"<
n)
{
for(int
i=n;i>0;i--)
{
if(m%i==0&&n%i==0)
{
x=i;
break;
}
}
}
else
{
for(int
i=m;i>0;i--)
{
if(m%i==0&&n%i==0)
{
x=i;
break;
}
}
}
return
x;
}
int
min(int
m,int
n)
{
max(m,n);
y=m*n/x;
return
y;
}
第二题是啥意思?是要将一个一维数组逆序么?
如果是那样的话,程序为:
#include
int
main(void)
{
int
n,a[1000],temp;
printf("请输入数组长度:");
scanf("%d",&n);
for(int
i=0;i
评论
0
0
加载更多

⑶ 求教C语言编程题两道。

第一个问题要是不带负号,还是很容易解决。现在脑子有点乱,就只回答第二个简单一点吧(未编译,如有错,调试一下,应该问题不大)
#
include
<stdio.h>
int
main
(void)
{
int
a,
b,
c,
d;
//分别存储个、十、百位数;
for(i=1000;
i<=9999;
++i)
{
a
=
i%10;
//i对10取余求出个位数;
b
=
i/10%10;
//取出十位;
c
=
i/100%10;
//
得出百位
d
=
i/1000;
//
得出千位
if(i
==
a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)

printf("%d为紫荆花数!\n",
i);
}
return
0;
}

⑷ 求高手解答2道c语言程序设计题,急~~~ 见图

第一题:
数据以逗号分割,数据串第4和第5为关键字符
设班级最大可能为1-9,这里好像只有1和2。
有两种思路处理
a[N][M];
N为班级=9,M为男/女的数量=2
1.
A.每次使用fgets获取一整行,循环处理
a). 设指针p指向BUFFER的开头
a). a[*(p+3)-'1'][*(p+4)-'1']++; // -‘1’而不是-'0'是为了让其对准下标从0开始
b). 使用库函数strchr找到下一个逗号的位置,并赋值给p(注意这里使用p作为查找串,如果没有逗号,也就是返回Null,证明本行完毕,那么返回A获取下一行)
c). 使p增1让其指向数据串第一个字符(strchr返回的为逗号的位置)
B.输出
//当然由于数据的固定格式你可以直接每次使p+8而不是使用strchr
2.
使用fscanf("%8s");每次获取8位的字符串,同上处理,这个自己考虑一下,可能会有点问题,但应该容易解决

我相信你做了第一题之后,另外一题也不是难题。

⑸ C语言简单题目,求高手解答

#include <stdio.h>
void main()
{ int i =1,sum=0;
while(i<=100)
{ if(i%2==1)
sum=sum+i;
i++;
}
printf(“%d\n”,sum);
}
上面程序的主要功能是 : 求1到100之间所有奇数的和

2、
#include <stdio.h>
void main()
{ long i,s=1;
for(i=2;i<100;i+=2)
s=s*i;
printf(“ld”,s);
}
上面程序的功能是 :求 1 到 100 之间 所有偶数的乘积
3、
#include <stdio.h>
void main()
{ int a[10] ,i=0;
for(i=0;i<10;i++)
{ a[i]=i+1;
printf(“a[%d]=%3d\t “,i,a[i]);
if( i%2==1)
printf(“\n”);
}
} }
上面程序段输出的结果是:
a[0]= 1 a[1]= 2
a[2]= 3 a[3]= 4
a[4]= 5 a[5]= 6
a[6]= 7 a[7]= 8
a[8]= 9 a[9]= 10

1、编程,输入a,b,c三个值,输出其中最大者。
void main()
{ int a ,b,c,max;
printf("请输入三个数a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max = c;
printf("最大数为:%d",max);
}

1、一球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少m?第10次反弹多高?试编程求解

#include "stdio.h"
main()
{
float h=100,s = h/2;

int n;
for (n = 2; n <= 10; n++)
{
h = h + 2*s;
s = s/2;
}
printf("第10次落地时经过的总长度是%f\n",h);
printf("第10次谈起的高度是%f\n",s);
}

⑹ 求高手帮做两个C语言编程题,高分

//第一题:这个绝对简单,便捷。界面良好 ---打印菱形
#include<stdio.h>
int main()
{
int i,j,n;
printf("请输入菱形高:n = ");
while( scanf("%d",&n) && n>0 )
{
printf("\n");
puts("--------------------------------------------------------------------------------");
for( i = 0 ; i< n ; i++ )
{
for(j=0;j < n-i ; j++ )
printf(" ");
for(j=0;j < (i<<1)+1 ; j++ )
printf("*");
printf("\n");
}
for( i = n-2 ; i>=0 ; i-- )
{
for(j=0;j < n-i ; j++ )
printf(" ");
for(j=0;j < (i<<1)+1 ; j++ )
printf("*");
printf("\n");
}
puts("--------------------------------------------------------------------------------");
printf("请输入菱形高:n = ");
}
return 0;
}

/*

请输入菱形高:n = 8

------------------------

*
***
*****
*******
*********
***********
*************
***************
*************
***********
*********
*******
*****
***
*
------------------------

*/

/*第二题:输入n个点的平面坐标,程序将这些点按照距离原点从近到远的顺序进行排序并输出。(n>=6)。*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define MAXN 200
typedef struct PO
{
double x;
double y;
double z;
} POINT;
POINT a[MAXN];
POINT * p[MAXN];
int cmp( const void * a, const void * b )
{
if( ((POINT*)a)->z > ((POINT*)b)->z )
return 1;
else
return -1;
}

void Init()
{
int i;
for( i = 0 ; i < MAXN ; i++ )
{
p[i] = &a[i];
}
}

int main()
{
int n,i,j,k;
while(1)
{
Init();
printf("\n有几个点? n=");
scanf("%d",&n);
if(n<=0) continue;
for(i=0;i<n;i++)
{
printf("请输入第 %d 个点的 x 和 y 坐标: ",i+1);
scanf("%lf%lf",&a[i].x,&a[i].y);
a[i].z = sqrt(a[i].x*a[i].x + a[i].y * a[i].y);
}
qsort(a,n,sizeof(POINT),cmp);
printf("到原点距离排序后输出:\n");
for(i=0;i<n;i++)
{
printf("( %lf , %lf ) = %lf\n",p[i]->x,p[i]->y,p[i]->z);
}
}
return 0;
}

/*

有几个点? n=6
请输入第 1 个点的 x 和 y 坐标: 1 9
请输入第 2 个点的 x 和 y 坐标: 8 77
请输入第 3 个点的 x 和 y 坐标: 0 0
请输入第 4 个点的 x 和 y 坐标: 37 3
请输入第 5 个点的 x 和 y 坐标: 89 102
请输入第 6 个点的 x 和 y 坐标: 34 23
到原点距离排序后输出:
( 0.000000 , 0.000000 ) = 0.000000
( 1.000000 , 9.000000 ) = 9.055385
( 37.000000 , 3.000000 ) = 37.121422
( 34.000000 , 23.000000 ) = 41.048752
( 8.000000 , 77.000000 ) = 77.414469
( 89.000000 , 102.000000 ) = 135.369864
*/
///////哥们。赶紧加分呀。。通宵给你做出来了。。。。。
//又不明白的加我 695033480 。 我负责到底!!!

⑺ 几道简单的C语言编程题,请高手帮忙

1
#include<stdio.h>

int main()
{
int sum = 0,i = 1,k = 1,j;
for(i=1;i<102;i+=2) {
j = k*i;
sum += j;
k*=-1;
}
printf("%d\n",sum);
return 0;
}
2
#include<stdio.h>

int main()
{
int n,i;
while(scanf("%d",&n) == 1 && n>1) {
for(i = 2;i*i<=n;i++) {
if(n%i == 0) break;
}
if(i*i > n) printf("素数\n");
else printf("合数\n");
}
return 0;
}
#include<stdio.h>

int main()
{
int a,b,c;
while(scanf("%d %d %d",&a,&b,&c) == 3) {
int max = a;
if(max <b) max = b;
if(max < c) max = c;
printf("%d\n",max);
}
return 0;
}
4看不到图

#include <stdio.h>
int findmin(int *s,int n) /* s表示数组的首地址,n是数组大小*/
{

int i,min,j;
min = s[0],j = 0;
for(i = 1;i<10;i++)
if(min > s[i]) min = s[i],j = i;
return j;

}
main()
{int a[10],i,k;
for (i=0; i<10; i++)
scanf("%d",&a[i]);
k=findmin(a,10);
printf("%d,%d\n",k,a[k]);
}

⑻ C语言简单编程题目两道,求高手做一下。高分!!!!

第1题 :

#include <stdio.h>
#include <stdlib.h>

#define MAX 200

int main(void)
{
int a[MAX], i = 0;

srand(time(NULL)); // 时间种子, 保证真随机, 每次不会相同

while (i < MAX) {
a[i] = rand() % 10000; // 随机获得10000以下数字, 0-9999

if (a[i] < 1000) { // 不是4位数
continue; // 重新随机
}

i++;
}

FILE *fp;

if ((fp = fopen("in.dat", "wb")) == NULL) {
printf("Open failed.\n");
}

//fwrite(a, sizeof(a), 1, fp); // 将数据写入文件, 字节的方式

for (i = 0; i < MAX; i++) { // 字符的方式, 看你下面的scanf, 可能你是要这种
fprintf(fp, "%d ", a[i]);
}

return 0;
}

第2题 :

void isVal(void)
{
int i, tmp, val;
int count = 0, j = 0;

for (i = 0; i < MAX; i++) { // 循环验证所有数字
count = 0; // 每次清0
tmp = a[i]; // 为了不改变a数组的值, 用tmp保存着

while (tmp > 0) { // 依次取得4个位存到val变量中
val = tmp % 10; // 个十百位位的顺序
tmp /= 10; // 每次除10, 以去掉个位数

if (val == 0 || val == 2 || val == 4
|| val == 6 || val == 8) { // 取得的数只要是这5个数中任意一个, count计数就加1
count ++;
}
}

if (count == 4) { // 如果count=4表示4个位都是0/2/4/6/8
b[j++] = a[i]; // 则复制此数字到b数组中, 同时j自增1
}
}

cnt = j; // j的值就是总共符合要求的数, 全局变量cnt赋值与j相同即可.

for (i = 0; i < cnt - 1; i++) { // 冒泡排序将b从小到大排列
for (j = 0; j < cnt - 1 - i; j++)
if (b[j] > b[j + 1]) {
tmp = b[j];
b[j] = b[j + 1];
b[j + 1] = tmp;
}
}

return;
}

⑼ 两道c语言编程题,初学者,请高手指教。

问题1:
#include <stdio.h>
void main()
{ int i ;
for (i = 33 ; i <= 126 ; i++)
{
printf("字符为%c,十进制为%d,八进制为%o,十六进制为%x\n",i,i,i,i);
}
}
问题2:
#include <stdio.h>

void main()
{
int i , j , num = 0 ;
printf("请输入一个数:");
scanf("%d",&i);

for (j = 1 ; j <= i ; j++)
num += j ;
printf("结果为%d",num);
}