c-大神们,请问程序错在哪里,编译没有错,就是不运行!

问题描述

大神们,请问程序错在哪里,编译没有错,就是不运行!

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。
样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)
5
3 4 0 0 2
样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)
3
3 4 2
样例输入:
7
0 0 7 0 0 9 0
样例输出:
2
7 9
样例输入:
3
0 0 0
样例输出:
0
#include
#include
void CompactIntegers(int array[], int *n)
{
int i,j;
int k =*n;//k为数组中元素个数
for (i = 0; i <k; i ++)
{
if (array[i]==0) {
for (j = i; j < k-1; j++)
{array[j]=array[j+1];}//将0后面的元素都往前移
array[k]=0;
i--;//让i还为当期值,因为后面的元素往前移了。
k--;//删除为0的元素
}
}
*n = k;
}
int main()
{
int n,i;
scanf("%d",&n);
int count[n];
for (i = 0; i < n; i ++)
scanf("%d",&count[i]);
CompactIntegers(count, &n);//打印删除数组中的0元素后的元素个数和元素
printf("%dn",n);
for (i = 0 ; i < n; i ++)
printf("%d ",count[i]);
return 0;
}

解决方案

 #include<stdio.h>
int CompactIntegers(int array[], int n)
{
    int i,j;
    for(i=0,j=0; i<n; i++)
    {
        if (array[i]==0)
        {
            j++;
        }
        if(j!=0 && array[i]!=0)
        {
            array[i-j]=array[i];//将0后面的元素都往前移
        }
    }
    return n-j;
}
int main()
{
    int n,i;
    scanf("%d",&n);
    int count[100];
    for (i = 0; i < n; i ++)
        scanf("%d",&count[i]);
    n=CompactIntegers(count, n);//打印删除数组中的0元素后的元素个数和元素
    printf("%dn",n);
    for (i = 0 ; i < n; i ++)
        printf("%d ",count[i]);
    return 0;
}

解决方案二:

程序没有错,叨扰各位了,不过还是希望大家能给一些另外编程思想!

解决方案三:

太复杂了你这样,从左到右依次访问,遇到一个非0数就放到左边,一趟跑下来,时间复杂度o(n),空间o(1)

解决方案四:

潜移默化,在学习的过程中自然而然形成的

解决方案五:

解决方案六:

程序没有错,那么你想要什么呢?

时间: 2024-11-01 16:21:30

c-大神们,请问程序错在哪里,编译没有错,就是不运行!的相关文章

桌面下雪小程序-求大神指教这个程序错在哪

问题描述 求大神指教这个程序错在哪 [cpp] view plaincopyprint? //#include "stdafx.h" #include #include #include //#pragma comment(/Entry:WinMain) #define ID_TIMER 1 #define SNOWNUM 500 // 雪花数量 #define CONTRAST 50 // 对比度 #define YSTART 5 // 用于确定雪花初始时的y坐标 #define S

各位大神,请问vs性能调试工具是仅仅能对c#语言编写的程序调试吗?

问题描述 各位大神,请问vs性能调试工具是仅仅能对c#语言编写的程序调试吗? 最近写了一个c++程序,但耗内存特别大,所以想做一下性能分析,看看到底是那个 地方占了内存,刚好vs有一个性能分析工具,请问vs的性能分析工具是不是可以分析 所有语言程序写的代码? 解决方案 我试过,可以对c++ 进行性能调试的,应该是可以的

library-请教大神帮忙解决一下eclipse里面android_NDK编译.c文件报错

问题描述 请教大神帮忙解决一下eclipse里面android_NDK编译.c文件报错 "D:Androidandroid-ndk-r9dndk-build.cmd" all 系统找不到指定的文件. [armeabi-v7a] Compile thumb : hello-jni <= hello-jni.c jni/hello-jni.c:31:1: fatal error: opening dependency file ./obj/local/armeabi-v7a/objs

指针-@C语言大神,这程序谭浩强给的答案看不懂,求解释?

问题描述 @C语言大神,这程序谭浩强给的答案看不懂,求解释? //题目:输出字符串里数字团,以及个数.比如89cy129//就输出89,129,一共2个数.// 问题:后面一大段为啥要复制粘贴前面一大段的代码?//有什么用?求解释.而且运行也不对,求修改!跪谢! include int main() { char str[80],*pstr; int m,i=0,j=0,k=0,digit=0,ndigit=0,e10,a[80],*pa; pstr=&str[0];pa=&a[0]; g

sql server-求助各位大神,这个程序哪里有问题

问题描述 求助各位大神,这个程序哪里有问题 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class test8 { public static void main(String[] args) { Connection ct=null; Statement sm=null; try{ Class.forName("com.microsoft.jdbc.sq

求大神,请问如何在matlab里调用wordnet?

问题描述 求大神,请问如何在matlab里调用wordnet? 1如题,请问如何在matlab里调用wordnet?在网上又看到用C++.java.python调用的,但是没看到如何用matlab调用的,求大神帮助,最好能有示范的代码,谢谢! 解决方案 http://www.cnblogs.com/KingKou/p/4121373.html

输出-C语言完全数问题,求大神直接给程序

问题描述 C语言完全数问题,求大神直接给程序 输入整数n,判断n是否是完全数,并输出结果 输入N,输出1~N之间的所有完全数 解决方案 #include int main() { int n,N,i,j,sum; printf("输入整数n,判断n是否是完全数:n"); scanf("%d",&n); sum = 0; for (i = 2;i < n;i++) { if (n%i == 0)sum += i; } if (n==sum) printf

javaweb-各位大神,请问这是什么意思,怎么解决呀!

问题描述 各位大神,请问这是什么意思,怎么解决呀! WARNING: Failed to scan JAR [file:/F:/myWorspaces/.metadata/.me_tcat7/webapps/ROOT/WEB-INF/lib/poi-ooxml-schemas-3.11.jar] from WEB-INF/lib java.util.zip.ZipException: invalid CEN header (bad signature) at java.util.zip.ZipF

报表-求教大神,请问这个是用什么技术实现的?

问题描述 求教大神,请问这个是用什么技术实现的? 解决方案 这叫散点图,有很多图表控件能做到类似效果的,比如:http://echarts.baidu.com/doc/example.html 解决方案二: CSS+HTML实现的晒 解决方案三: 如果数据不是很复杂,完全可以自己编码实现. 但这样做工作量比较大,但式样可以自己控制:用已有控件,则快.但能否满足自己的需求,需要验证. 解决方案四: echarts . highcharts或者R语言

c++-请教大神! 这个程序出现的问题怎解决?

问题描述 请教大神! 这个程序出现的问题怎解决? class CMessage { private: char* m_pmessage; public: CMessage (const char* text="Default message") { size_t len=(strlen(text)+1); m_pmessage=new char[len]; strcpy_s(m_pmessage,len,text); } CMessage (const CMessage & A