c语言输出三角形,程序输出值的时候出错了,怎么改呢

学号:__________&&& 姓名:__________&&& 班级:__________&&& 日期:__________
指导教师:__________&&& 成绩:__________
实验三& 数组一、&实验目的1、掌握一维和二维数组的定义、赋值和输入输出2、掌握字符数组和字符串数组的使用3、掌握与数组有关的排序算法二、&实验内容1、&已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。(习题7.4)2、&将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。(习题7.5)3、&如下程序是按选择法对数组中的n个元素按从小到大的顺序排序,请对程序中的错误进行改正,使其正常运行。&&&&&&& #include &#define N 20&&&&&&& void main()&&&&&&& {&&&&&&&&&&& int a[N]={9,6,8,3,-1};&&&&&&&&&&& int i,m;&&&&&&&&&&& printf("before sort:");&&&&&&&&&&& for(i=0;i<M;I++)&&&&&&&&&&&&&& printf("%d",a[i]);&&&& printf("\n");&&&&&&&&&&& {& int i,j,t,p;&&&&&&&&&&&&&& for(j=0;j<M-1;J++)&&&&&&&&&&&&&&&&& {& p=j;&&&&&&&&&&&&& for(i=j;i<M;I++)&&&&&&&&&&&&&&&&& if(a[i]&&&&&&&&&&&&&&&&&&&& t=a[p]; a[p]=a[j]; a[j]=t;&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&& }&&&&&&&&&&&& printf("after sort:");&&&&&&&&&&&& for(i=0;i<M;I++)&&&&&&&&&&&&&&&& printf("%d",a[i]);&&&&& printf("\n");&&&&&&&& }三、&实验步骤与过程
第一┆范文网整理该文章,版权归原作者、原出处所有...
&四、程序调试记录
阅读:人次
上一篇文章: 下一篇文章:
培训超市& (5000多套光盘)C语言模拟试题题库
本试题来自:(2007年C语言模拟试题,)2、改错题下列给定程序中,函数fun()的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序;
#include<stdio.h>
#include <conio.h>
/*************found**************/
void fun(int a,b)
/*************found**************/
t=b;b=a;a=t;
printf("Enter a, b: "); scanf("%d%d",
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
正确答案:错误:void fun(int a,b)
正确:void fun(…… 或者 答案解析:有,
您可能感兴趣的试题
填空题:()请补充函数fun(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为: asd ascasdfg asd as asd mlosd,子字符串为asd,则应输出4。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
int fun(char *str,char *substr)
char *p,*r;
while(*str)
if( 【2】 )
if( 【3】 )
char str[81],substr[3];
printf("输入主字符串: ");
gets(str);
printf("输入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
答案:有,答案解析:有,填空题:(/shiti/5116629/)以下程序的功能是计算:s=1+12+123+。请填空。#include <stdio.h>main( )
int t=0.s =0,i:
for(i=1;i<=5;i++) t=i+ ;s=s+t;
prinff("s = % d\\n". s );答案:有,答案解析:有,
C语言模拟试题最新试卷
C语言模拟试题热门试卷程序编译无错,调试的时候到调用函数的时候报错了_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:269,874贴子:
程序编译无错,调试的时候到调用函数的时候报错了收藏
void Creater(TSMatrix S) {&&&& int i,j,n;&&&&&& printf("请输入稀疏矩阵行列值:");&&&&&& scanf("%d,%d",&col,&row);&&&&&& S.mu=S.nu=&&&&&& printf("请输入非零数据个数");&&&&&& scanf("%d",&S.tu);&&&&& for(p=1;p&=S.p++)&&&&&& { &&&&&& printf("请输入非零数据(行,列,值):\t");&&&&&& scanf("%d%d%d",&S.data[p].i,&S.data[p].j,&S.data[p].e);&&&&&&&&&&&&&&&& }&&&&&& print(S);}int main(){&&& int c=1;&&&& while(c)&&&& {&&&& TSMatrix S,T;&&&& printf("\t\t\t1.矩阵相加\n");&&&& printf("\t\t\t2.矩阵相减\n");&&&& printf("\t\t\t3.矩阵相乘\n");&&&& printf("\t\t\t4.矩阵转置\n");&&&& printf("\t\t\t0.退出\n"); &&&& printf("请选择操作:");&&&& scanf("%d",&c);&&&&&&& switch(c)&&&&&&& {&&&&&&&&&&&&&&& case 1:printf("请输入矩阵1:");&&&&&&&&&&&&&&&&&&&&&&&&& Creater(S);&&&&&&&&&&&&&&&&&&&&&& printf("请输入矩阵2:");&&&&&&&&&&&&&&&&&&&&&& Creater(T); &&&&&&&&&&&&&&&&&&&&&& Multi(S,T);&&&&&&&&&&&&&&& case 2:printf("请输入矩阵1:");&&&&&&&&&&&&&&&&&&&&&&&&& Creater(S);&&&&&&&&&&&&&&&&&&&&&& printf("请输入矩阵2:");&&&&&&&&&&&&&&&&&&&&&& Creater(T); &&&&&&&&&&&&&&&&&&&&&& Add(S,T);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case 3:printf("请输入矩阵1:");&&&&&&&&&&&&&&&&&&&&&&&&& Creater(S);&&&&&&&&&&&&&&&&&&&&&& printf("请输入矩阵2:");&&&&&&&&&&&&&&&&&&&&&& Creater(T); &&&&&&&&&&&&&&&&&&&&&& Jian(S,T);&&&&&&&&&&&&&&& case 0:&&&&&&&&&&&&&&& default:printf("操作非法,请重试!\n");&&&&&&&&&&&&&&&& }&&&& }}只上了一部分,主要是creater函数 运行到&& Creater(S);的时候就报错
无论TSMatrix是不是指针类型,你都杯具了
……给出TSMatrix的定义吧,省得猜测了data域是怎么处理的?
data是什么来的?上限是多少?溢出了?
很可能S.data是野指针,当然即使不SIGSEGV了这还是个杯具
如果是指针……肯定忘了初始化了……最近也写过类似的东西……指针学的不扎实……试了好几遍……最终确定如果structure里用了指针会变得非常麻烦……因为递归的时候function里free还得去判断是递归malloc的还是调用function的时候在外面写的struct 。。 。。;最后放弃了去搞了个c#……于是清净了……结论……c现在可以玩玩……但是写大东西还是用c#之类的……至少用起来方便……(我指容器……)很高兴5年没写过c还记得怎么写链表……(4年大学用c,c#,java,毕业了现在在用pb……)
额……我没有贬低c的意思……我指的是如果要写点小工具自己用除非很简单的我会用c写,用到容器的话还是c#之类的比较方便……
不好意思,忘给了 #include "stdio.h"#include "stdlib.h"#define MAXRC 100#define MAXSIZE 12500typedef int Etypedef struct{&&&& int i,j;&&&& E}Ttypedef struct{&&&& Triple data[MAXSIZE+1];&&&& int mu,nu,//&&&& int rpos[MAXRC+1];}TSM
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或C语言模拟试题题库
本试题来自:(2006年C语言模拟试题,)一、选择题 下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。以下程序试图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符串#号时结束输入和输出操作,但程序有错
#include<stdio.h>
FILE * fout;
fout=fopen(’abc.txt’’w’);
ch=fgetc (stdin);
while(ch!=’#’)
fputc(ch,fout);
ch=fgetc(stdin);
fclose(fout);
出错的原因是 ______。A.函数fopen调用形式错误B.输入文件没有关闭C.函数fgetc调用形式错误D.文件指针stdin没有定义正确答案:有, 或者 答案解析:有,
您可能感兴趣的试题
单项选择题:()有以下程序:
  #include <stdio.h>
  main( )
  { FILE * int i,k=0,n=0;
    fp=fopen(“d1.dat”,”w”);
    for(i=1;i<4;i++) fprintf(fp,”%d”,i);
    fclose(fp);
    fp=fopen(“d1.dat”,”r”);
    fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
    fclose(fp);}
  执行后输出结果是(
A.1 2B.123 0C.1 23D. 0 0答案:有,单项选择题:(<a title='有以下程序: main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++) printf("%4c",’’ ’’); for(j=_____;j/shiti/5091959/)有以下程序:
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++)
printf("%4c",’’
’’); for(j=_____;j<4;j++)
printf("%4d",num[i][j]); printf("\n");
若要按以下形式输出数组右上半三角
则在程序下划线处应填入的是______。
A.i-1 B.i C.i+1 D.4-i答案:有,答案解析:有,
C语言模拟试题最新试卷
C语言模拟试题热门试卷C语言编程问题(我编了个程序,请高手看看有没有返回值,并给予指正,谢谢了)
C语言编程问题(我编了个程序,请高手看看有没有返回值,并给予指正,谢谢了)
编写函数fun,函数的功能是计算正整数n的所有因子之和(不包括1和n),并将结果返回。
#include&stdio.h&int fun(int m){ int a , sum=0; for(a=2;a&m;a++) {
if(m%a==0){
printf(" %d ",a);
sum =sum+a;
main(){ printf("\nshu ru n :"); scanf("%d",&n); printf("\n%d",fun(n));}
测试了,正确的有返回值
的感言:谢谢你咯~~~~能问下,怎么测试有没有返回值?能加QQ吗?
其他回答 (4)
这不是所有因子之和 呵呵 比如12=2*2*3 而你的结果是2+3+4+6
那要怎么改?
采用递归,将sum=sum+a;改成
sum=sum+fun(m/a);
if(m%a==0)可以不要。程序就是对了。
帮你改了下,看是不是对的?
#include&stdio.h&int fun(int m){ int a,sum=1; for(a=2;a&m;a++) {
if(m%a==0)
sum=sum*a; }}main(){ printf("shu ru n:"); scanf("%d",&n); printf("%d",fun(n));}
你的代码是没问题的,不过效率上说的话不大好。。看看下面那个···
#include"stdio.h"
#include"math.h"int fun(int m){
int a, sum =0, k =sqrt(m); for(a=2;a&=k;a++){if(m%a==0)
sum+=a+m/a;
// a是m的因数的话,m/a也是了,那么循环到m的开方就够了}return k == sqrt(m) ? sum-k:
// 看m是不是完全平方数}main(){scanf("%d",&n);printf("%d",fun(n));}
没看懂什么意思~~~还是要谢谢你了!
我再说说吧,你的代码是没问题的,不过效率上可以改进下,例如说一个数是 10,当a循环到2的时候,a能被10整除,所以a是一个因数,而m/a=10/2=5也是一个因数(没必要循环找了)
一个整数开根号后,它左右两边的约数的个数是相等的(仔细想想),就是说,如果在根号(m)的前面找到一个,那根号(m)的后面肯定也有一个。。所以说,循环到根号(m)就够了。。
return那里要那样写是因为如果m是完全平方数的话,根号(m)这个因数在前面被加了两次了,所以返回前要减····
相关知识等待您来回答
编程领域专家}

我要回帖

更多关于 c语言输出三角形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信