C语言编程下图怎么做?

作者&投稿:隐纨 (若有异议请与网页底部的电邮联系)
C语言编程,下图怎么编程啊?~

#include
int a[100][100]={1};
int main(){
int n=5,m=1;
printf("原矩阵:
");
for(int i=0;i<n;++i){
for(int j=0;j<n-1;++j){
a[i][j]=m++;
printf("%d",a[i][j]);
if(j<n-2)printf(" ");
else printf("
");
}
}
printf("转置矩阵:
");
for(int i=0;i<n-1;++i)
for(int j=i;j<n-1;++j){
int tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
for(int i=0;i<n-1;++i){
for(int j=0;j<n-1;++j){
printf("%d",a[i][j]);
if(j<n-2)printf(" ");
else printf("
");
}

}
return 0;
}


代码文本:
#include "stdio.h"
int myf(int n){
if(n==1 || n==2)
return 1;
return 3*myf(n-1)+2*myf(n-2);
}
int main(int argc,char *argv[]){
int sum,n,t;
printf("Enter n(int n>0)...
n=");
if(scanf("%d",&n) && n>0){
for(sum=0,t=1;t<n;sum+=myf(t++));
t=myf(n);
printf("%d%d
",t,t+sum);
}
else
printf("Input error, exit...
");
return 0;
}

方法有很多种:

一、直接循环,通过变量计数判断每个字符输出的内容。缺点:逻辑繁琐。

二、把图像看成固定长度的多行字符串(最大行宽用常量或动态数组)。

这样两个题目就都统一成一个思路,那就是循环重复打印一个字符串。而这个字符串在每次循环都改变自己的内容。

改变内容的方法:初始用两个指针指向这个字符串的中心位置,不断往两边移动,移动同时改变指向地址的值。

这里,如指针移动到两头,程序就结束,那么打印的就是题目二的三角形。如到两头再往回走,打印的就是菱形。

另外要注意:1、菱形是固定字符黑桃。而三角形是循环打印大写字母。

2、字符之间是有宽度的,不能直接用%s输出一行字符串,需要循环输出指定宽度字符。

因此,按照编程思想,输出打印一个字符串以及循环大写字母这两个功能是要重复调用的,要单独写函数。

下面是代码:

#include <stdio.h>

#define MLEN 50//图形最大行宽度

void show1();//对应题目1的菱形

void show2();//对应题目2的三角形

void showLine(char lnStr[],int n,int d);//打印输出一行图形,参数:行数组、数组长度、字符间隔大小

char getLetter();//每次调用,返回A~Z的一个字母,字母循环

int main()

{

    show1();

    show2();

    return 0;

}

void showLine(char lnStr[],int n,int d)

{

    int i;

    for(i=0;i<n;i++) printf("%*c",d,lnStr[i]);

    printf("
");

}

char getLetter()

{

    char b;

    static char w='A';

    b=w;

    if(w<'Z') w++;

    else w--;

    return b;

}

void show1()

{

    int i,flag=1,n=0;

    char lnStr[MLEN]={0},*p0=NULL,*p1=NULL;

    while(n<=1 || n%2==0 || n>=MLEN)

        printf("请输入菱形最大宽度n(字符个数n必须是大于1且小于%d的奇数):",MLEN),scanf("%d",&n);

    for(i=0;i<n;i++) lnStr[i]=' ';//初始化一行空格

    p0=p1=&lnStr[n/2];//指针初始指向中间

    while(p0<=p1)

    {

        if(flag) *p0=*p1=5,p0--,p1++;//标识为1,两指针指向地址值变黑桃,之后分别向两边移动

        else *p0=*p1=' ',p0++,p1--;//标识为0,两指针指向地址值变空格,之后分别向中间移动

        showLine(lnStr,n,2);

        if(p0+1==&lnStr[0]) p0++,p1--,flag=0;//两指针移动到两头,开始反向移动

    }

}

void show2()

{

    int i,n=0;

    char lnStr[MLEN]={0},*p0=NULL,*p1=NULL,*p=NULL;

    while(n<=1 || n%2==0 || n>=MLEN)

        printf("请输入三角形底边宽度n(字符个数n必须是大于1且小于%d的奇数):",MLEN),scanf("%d",&n);

    for(i=0;i<n;i++) lnStr[i]=' ';//初始化一行空格

    p0=p1=&lnStr[n/2];//指针初始指向中间

    while(1)

    {

        showLine(lnStr,n,2);

        if(p0+1==&lnStr[0]) break;

        p=p0;

        while(p<=p1) *p=getLetter(),p++;

        //两指针之间的地址值循环取大写字母,之后分别向两边移动

        p0--,p1++;

    }

}



c语言编程题:用v c++写出下图
答:/**C语言的 **//**VC6**/#include <stdio.h>#include <conio.h>#include #include <windows.h>int jisuan( int a, int b );intnum= 0, right = 0, d = 0;floattotle= 100, score;int main(){inti, j, k;intanswer;charch;srand( (unsigned) time( 0 ) );while ( 1 )...

如何编写C语言程序?
答:2.快捷键“CTRL+N”建立新源代码。3.输入源代码,下面给出最简单的Hello,world源代码:include <stdio.h> int main( ){ printf("Hello,World\n");return 0;} 4.按下F11编译并且运行源代码,得到运行结果:5.点击任意键返回源代码编辑界面可以继续进行开发,接下来就是C语言语法的学习了。

C语言编程:请问图中的这个程序怎么写?
答:include <stdio.h>main(){ int i, n, k = 1; double f = 1, S = 0; scanf("%d", &n); for(i = 1; i <= n; i ++) { f *= i; S += k / f; k = k * (-1); } printf("%lf\n", S);} ...

一个有关猴子吃桃子的编程题,用c语言循环语句怎么做??
答:1、首先在电脑中打开vc6.0,新建一个项目,添加头文件,如下图所示。2、接着添加main主函数,如下图所示。3、然后定义day、x1、x2,如下图所示。4、接着初始day、x2,然后使用while循环。5、最后使用printf打印,运行程序看看结果,猴子吃桃问题就完成了。

用C语言怎么做?
答:很多大学生都或多或少的懂一点编辑语言,尤其是计算机系的,众说周知,c++语言是众多语言中比较简单易学的,那么要如何使用它来编写程序呢?下面将告知如何编写一个属于自己的小程序。工具/原料 more 电脑一台(能联网) Visual C++ 6.0(完整绿色版)软件 方法/步骤 1/6分步阅读 想要编写软件首先得...

一道c语言编程题,下图第三题,急求高手解答,要代码,谢谢,急求,在线等...
答:include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); double k=b*b-4*a*c; if(k<0) { printf("方程无解!"); } else { double as=(-1*b+sqrt(k))/2*a; double sd=(-1*b...

使用c语言编程输出以下图形该怎么写呀?
答:复制粘贴即可用!!!include<stdio.h> int main(){ int width,height; //宽度&高度 int i,j,k; //三个循环变量,设一个也可以,不过这样好理解 printf("请输入矩形的宽度:");scanf("%d",&width);printf("请输入矩形的高度:");scanf("%d",&height);//输出第一行 for(i=0;i<widt...

C语言:大佬做一下图片上英语题目的C编程,咋写?
答:按题目要求,写一个在数组中查找素数的函数,找到返回该数,没找到返回-1;主函数中定义至少两个数组,一个有素数,一个没有,作两次独立调用输出结果。代码文本:include "stdio.h"int prime(int *p,int n){//数组中找素数 int i,k;for(k=0;k<n;k++){ if(p[k]>2 && !(p[k]&1) ...

C语言编程题 哪位大神帮忙看看怎么做 输出以下图案?
答:as3:核心程序 //var:定义变量 //trace:测试时简单输出 方法1:func1();function func1(n:uint=5){ var arr:Array=[];for(var i:uint=0;i<2*n+1;i++){ arr.push([])for(var j:uint=0;j<2*n+1;j++){ arr[i]+=Math.abs(j-n)<=Math.abs(i-n)?"*":" "} trace(...

c语言编程题可以怎么做?
答:主要程序为:include<stdio.h> intmain(){ floata,b,c;scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("可以构成三角形\n");elseprintf("不能构成三角形\n");getch();return0;}