永发信息网

C语言问题 高手进来

答案:4  悬赏:10  手机版
解决时间 2021-04-23 04:41
  • 提问者网友:箛茗
  • 2021-04-22 22:24

1、.用循环结构实现输出一7行的菱形图形。

2、判断m是否素数。(求100~200间的全部素数)

3、打印下三角形式的乘法口诀表

4、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的两位数?都是多少?

5、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直到购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?

用#include <stdio.h>

main()

来做

最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-04-22 22:34

在网上都有的,可以搜索的。




1、.用循环结构实现输出一7行的菱形图形。


#include<stdio.h>//菱形
void main()
{
int a,b;
if(a<=4)
{for(a=1;a<=4;a++)
{for(b=1;b<=15-2*a;b++) printf(" ");
for(b=1;b<=2*a-1;b++) printf(" *");
printf("\n");
}
}
if(a>4&&a<=7)
{for(a=5;a<=7;a++)
{for(b=1;b<=2*a-1;b++) printf(" ");
for(b=1;b<=15-a*2;b++) printf(" *");
printf("\n");
}
}
}


2、判断m是否素数。(求100~200间的全部素数)



<谭> 6.8 判断m是否是素数

采用如下算法:让m被2到m^2除,如果m能被2~m^2之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即m^2);如果m不能被2~k(即m^2)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任一整数整除过,因此输出“是素数”。

#include <stdio.h>
#include <math.h>
int main()
{
int m, i, k;
scanf("%d", &m);
k = sqrt(m);


for (i = 2; i <= k; i++)
if (m % i == 0) break;


if (i >= k + 1)
printf("%d is a prime number\n", m);
else
printf("%d is not a prime number\n", m);


return 0;
}

★ 素数: 大于1,并且除1和它本身外没有其他因数的自然数叫素数(或质数) ,2是最小的素数,除2以外,所有的偶数都不是素数。



6.9 求100~200间的全部素数。

#include <stdio.h>
#include <math.h>
int main()
{
int m, i, k, n = 0;
for (m = 101; m <= 200; m = m + 2)
{
k = sqrt(m);



for (i = 2; i <= k; i++)
if (m % i == 0) break;


if (i >= k + 1)
{
printf("%d ", m);
n = n + 1;
}
if (n % 10 == 0)
printf("\n");
}
printf("\n");
return 0;
}



3、打印下三角形式的乘法口诀表
#include <stdio.h>

int main()
{
int i, j;
for(i = 1; i <= 9; i++)
{
for(j = 1; j <= i; j++)
{
printf("%d*%d = %2d ", i, j, i*j);
}
printf("\n");
}
return 0;
}



4、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的两位数?都是多少?

定义了两个常量,M为最小的那个数字,N为最大的数字,如果要修改范围把这两个值改了就行了,但十进制要做的10个,20个能组成多少个互不相同且无重复数字的三位数的要求也太奇怪了吧。下面这个程序。在0~9中,可以求数字连续的互不相同且无重复数字的三位数
#include<stdio.h>
#define M 1
#define N 4
void main()
{int i,j,k,sum=0;
for(i=M;i<=N;i++)
for(j=M;j<=N;j++)
for(k=M;k<=N;k++)
if(i!=j&&i!=k&&j!=k)
{printf("%d%d%d\n",i,j,k);
sum++;
}
printf("总共有%d个\n",sum);
}

5、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直到购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?

#include <stdio.h>
int main(){
double price=0.8;//设置初始价格
for(int EveryANum=2; EveryANum<=100;EveryANum*=2){
printf("今天的苹果数目是:%d",EveryANum);
printf("一共花的钱总数为: %d",EveryANum*price);
}
return 0;
}
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-04-23 00:56

给你题目一的答案

#include <stdio.h>

#define ROW 7 #define CLUM 7 #define FUN(x,y) ( x > y )? ( x - y ) : ( y - x )

int main() { int i,j; //以i = 3 为中心 int mid_x = ROW/2; int mid_y = CLUM/2; int diff_x = 0; int diff_y = 0;

for(i = 0; i < ROW; i++){ for(j = 0; j < CLUM; j++){ diff_x = FUN(i,mid_x); diff_y = FUN(j,mid_y); if(diff_x + diff_y == mid_x){ printf("*"); }else{ printf(" "); } } printf("\n"); } return 0; }

  • 2楼网友:拜訪者
  • 2021-04-23 00:22

1.

#include <stdio.h>

#include <math.h>

main()

{

int i,j;

for(i=-3;i<=3;i++)

{

for(j=abs(i);j>0;j--)

printf(" ");

for(j=0;j<7-2*abs(i);j++)

printf("*");

printf("\n");

}

}

  • 3楼网友:爱难随人意
  • 2021-04-22 23:25

1.

int main(void) { int N = 0; printf("请输入行数:"); scanf("%d", &N); int i; int j; int k; int n; if(N%2 == 0) { n = N - 1; } else { n = N; } for(i = n / 2 * (-1); i <= n / 2; i++) { for(j = 0; j < abs(i); j++) { if(i == 0) { break; } printf(" "); } if(N%2 == 0 && i == 0) { int m = 0; while(m < 2) { for(k = 0; k < n - 2 * abs(i); k++) { printf("*"); } printf("\n"); m++; } } else { for(k = 0; k < n - 2 * abs(i); k++) { printf("*"); } printf("\n"); } } getchar(); getchar(); }

2.#include <math.h> int main(void) { int i,j,m,n; printf("100-200以内的素数为:\n"); for(m=100;m<=200;m++) { n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0) break; if(i>n) { printf("%d\t",m); j++; if(j%5==0) printf("\n"); } } getchar(); return 0; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯