c语言怎么出表格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言怎么出表格相关的知识,希望对你有一定的参考价值。
老师要我做一个程序,用C语言,要求输入20个以内的数字,将数字在表格里输出,比如,输入2,6,15,7,0,3,8,4,11,输出就是┌─┐└─┘(这是一个方框表格,中间就是数字2,6,15……)请问这种程序怎么编
1、首先在电脑中,打开软件Dev-C++进入操作页面中,然后在页面中输入头文件。
2、然后接下来编写Main主函数。
3、接着定义一个变量并赋予初值,这样就可以编写printf函数语句。
4、编写完成后,在页面中找到并点击编译、链接、运行按钮。
5、这时候,如下图所示,便可有看到效果了。
参考技术A #include<stdio.h>#include<string.h>
char S[100][1000]=' ';//声明表为全局变量
int s1=0;
void chart(int n,int a[],int m);
int main()
int n;
int M1[40]=0,M2[40]=0,M3[40][100]=0;
int i,j,k,k1,k2,max=0,col,l;
char s[30][1000];
scanf("%d",&n);
getchar();//注意,必须得有这个来接收回车符
//
for(i=0;i<n;i++)
gets(s[i]);
//求最大列数
for(i=0;i<n;i++)
l=strlen(s[i]);
for(j=0;j<l;j++)
if(s[i][j]==',')
M1[i]++;
if(M1[i]>max)
max=M1[i];
col=++max;
//求每列最大宽度 //1.先求每个单元的长度,赋给M3[i][j]中
for(i=0;i<n;i++)
l=strlen(s[i]);
k=0;
for(j=0;j<l;j++)
if(s[i][j]!=',')
M3[i][k]++;
if(s[i][j]==',')
k++;
//for2
//for1
//2.找每列最大的赋予M2[]
for(j=0;j<col;j++)
max=0;
for(i=0;i<n;i++)
if(M3[i][j]>max)
max=M3[i][j];
M2[j]=max;
//表格
chart(n,M2,col);
//输入数据
for(i=0;i<n;i++)
k1=0;
k2=0;
k=0;
l=strlen(s[i]);
for(j=0;j<l;j++)
S[2*i+1][k2+1]=s[i][j];
if(s[i][j+1]==',')
k1=k1+M2[k]+1;
k2=k1;
k++;
j++;
else
k2++;
//输出表格
for(i=0;i<=2*n;i++)
for(j=0;j<s1;j++)
printf("%c",S[i][j]);
printf("\n");
return 0;
void chart(int n,int a[],int m)//行数 每列的最大长度数组
int i,j,k;
int s;
s1=m+1;
for(i=0;i<m;i++)
s1+=a[i];
for(i=0;i<=2*n;i++)
//输出奇数行
if(i%2==0)
s=0;
k=0;
for(j=0;j<s1;j++)
if(j==s)
S[i][j]='+';
s+=a[k];
s++;
k++;
else
S[i][j]='-';
//for
//if
//输出偶数行
else
s=0;
k=0;
for(j=0;j<s1;j++)
if(j==s)
S[i][j]='|';
s+=a[k];
s++;
k++;
//for
参考技术B 参考下:
#include <stdio.h>
#define ARRAY_LENGTH 20
void printBox(int num)
printf("┌─┐\n");
printf(" %d\n",num);
printf("└─┘\n");
void main()
int num[ARRAY_LENGTH];
int inputNum,i,j;
printf("要输入数字的个数:");
scanf("%d",&inputNum);
for(i=0;i<inputNum;i++)
printf("数字%d:",i+1);
scanf("%d",&num[i]);
for(j=0;j<inputNum;j++)
printBox(num[j]);
追问
太谢谢你了!!!!能深聊么?!!!那个就是这个输出的是竖排的啊,有木有横排的?!!!
追答可以 我帮你修改下
#include
#define ARRAY_LENGTH 20
void printBox(int *num,int arr_Length)
int i;
for(i=0;i<arr_Length;i++)
printf("┌─┐\t");
printf("\n");
for(i=0;i<arr_Length;i++)
printf(" %d\t",num[i]);
printf("\n");
for(i=0;i<arr_Length;i++)
printf("└─┘\t");
void main()
int num[ARRAY_LENGTH];
int inputNum,i;
printf("要输入数字的个数:");
scanf("%d",&inputNum);
for(i=0;i<inputNum;i++)
printf("数字%d:",i+1);
scanf("%d",&num[i]);
printBox(num,inputNum);
printf("\n");
还是有缺陷啊,就是那个方格左右两边都是空的没有封起来啊,能不能再改改==谢啦==
追答只能做到这样了:
#include
#define ARRAY_LENGTH 20
void printBox(int *num,int arr_Length)
int i;
for(i=0;i0)
printf("│%2d│",num[i]);
printf("\n");
for(i=0;i<arr_Length;i++)
printf("└─┘");
void main()
int num[ARRAY_LENGTH];
int inputNum,i;
printf("要输入数字的个数:");
scanf("%d",&inputNum);
for(i=0;i<inputNum;i++)
printf("数字%d:",i+1);
scanf("%d",&num[i]);
printBox(num,inputNum);
printf("\n");
#include <stdio.h>
void title(void)
printf("%s\n%s\n%s\n%s\n%s","1.输入学生成绩","2.查询学生成绩","3.打印输出成绩","0.退出系统","请选择(0~3):");
int main(void)
char c=0;
while (c!='0')
title();
c=getchar();
putchar('\n');
switch (c)
default:printf("输入错误,请重新输入");break;
case '1':printf("请输入");break;
case '2':printf("请输入查找学生学号");break;
case '3':printf("正在输出");break;
case '0':printf("谢谢使用");break;
printf("\n\n");
fflush(stdin);
return 0;
//--------------------------------------------------------------------------- 参考技术D 用这些符号┌─┐└─┘拼一个表格就可以了啊
printf追问
真受不了你诶,你学过C语言没?!!!别乱说话!!!
追答靠!你学过没有C没有?你认真学没有?
你不用printf输出图形,难道你还想自己绘制一个?难道你打算用ASCII码?
你真NB !!!拜服!!!
自己看看楼上的朋友是不是用printf拼的,给你这种人没基础的人回答问题就是浪费时间
我要是有基础我还用问别人!?神经病
追答你没基础,这不是问题,你没基础来提问,也没问题,问题是别人花时间好像好意给你解答,你不表示感谢也就算了,还恶语伤人,这就是你的素质?试问,如此缺乏教养之人,谁还愿意给你解答问题,最后借你名言“你学过C语言没?!!!别乱说话!!!”
OK!88,别回了,浪费彼此时间
Makefile编译时怎么打印出变量值
参考技术A 其实androidndk上的编译说到底也就是交叉编译,只要配置好交叉编译工具链,使用原有的makefile也是可以编译出在android运行的c、c++程序的。以android-ndk-r4-crystax的ndk版本为例:编译器路径android-ndk-r4-crystax/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin名称前缀arm-eabi-头文件目录android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/include库文件目录android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/lib你可以试一下上面的配置,如果编译链接都没有问题,可以adbpush到android设备上运行看看,什么结果?有点崩溃,根本运行不起来,你也许想试试看android自带的ndk例子,确实是能够运行的,问题在哪儿呢?只是正确配置了编译器、头文件、库文件还不够,还需要配置编译、链接的参数,android例子中编译链接的参数是什么呢?你也许想深究一下android的makefile,可是不久你会发现那是更崩溃的事情,里面用了很多的make脚本函数。其实android的makefile是可以把执行的详细命令输出来的,只要make的时候加上V=1即可。可以看到确实带了很多参数编译参数:-fpic-mthumb-interwork-ffunction-sections-funwind-tables-fstack-protector-fno-short-enums-Wno-psabi-march=armv5te-mtune=xscale-msoft-float-mthumb-fomit-frame-pointer-fno-strict-aliasing-finline-limit=64-Wa,--noexecstack-D__ARM_ARCH_5__-D__ARM_ARCH_5T__-D__ARM_ARCH_5E__-D__ARM_ARCH_5TE__-DANDROID链接参数:-nostdlib-Bdynamic-Wl,-dynamic-linker,/system/bin/linker-Wl,--gc-sections-Wl,-z,nocopyreloc-Wl,--no-undefined-Wl,-z,noexecstack-L$(PLATFORM_LIBRARY_DIRECTORYS)crtbegin_static.ocrtend_android.o这其中链接参数中的-Wl,-dynamic-linker,/system/bin/linker、crtbegin_static.o、crtend_android.o是最关键的,android使用了自己的进程加载器,并且自定义了c运行时的启动结束。难怪先前编译的进程启动不了。以上是关于c语言怎么出表格的主要内容,如果未能解决你的问题,请参考以下文章