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;}