当前位置:编程问答 > C/C++ >

求教C++问题

问题:#include "stdio.h"
#include "string.h"
void main()
{
 char tongji(char s[1024]);
 char s[1024];
 int k,j,a,b;
 printf("请输入一个字符串\n");
 gets(s);
 printf("该字符串中字母的个数为%d个",k);
 printf("该字符串中数字的个数为%d个",j);
 printf("该字符串中空格的个数为%d个",a);
 printf("该字符串中其他字符的个数为%d个",b);
}
char tongji(char s[1024])
{
 int i,k,j,a,b;
 for(i=0;s[i]!='\0';i++)
    {
  if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
        k++;
        if(s[i]>='0'&&s[i]<='9')
  j++;
        if(s[i]==' ')
  a++;
  
 }
 b=i-k-j-a;
 return(k);
 return(j);
 return(a);
 return(b);
}
5.
#include "stdio.h"
void main()
int a[10];
int i;
{
 void px()
 
 printf("please inpur 10 numbers\n");
 for(i=0;i<10;i++)
  scanf("%d",a[i]);
 printf("它们的顺序为:");
 px();

}
void px()
{
 int i,j,t;
 for(j=0;j<14;j++)
  for(i=0;i<14-j;i++)
   if(a[i]>a[i+1])
   {
    t=a[i];
    a[i]=a[i+1];
    a[i+1]=t;
   }
   for(i=0;i<15;i++)
    printf("%  d",a[i]);
   printf("\n");
}

 

 

两个程序都不对,抓狂中·····第一个是统计输入字符串的字母,数字,空格个数,第二个是用冒泡排序的。希望可以指导下

追问:因为老师讲课的时候神游去了。你的冒泡欣赏不了,不过你的解释挺精彩的。
答案:#include "stdio.h"
#include "string.h"
void tongji(char s[1024]);
int k,j,a,b;
void main()
{
 
 char s[1024];
 
 printf("请输入一个字符串\n");
 gets(s);
 tongji(s);  
 printf("该字符串中字母的个数为%d个\n",k);
 printf("该字符串中数字的个数为%d个\n",j);
 printf("该字符串中空格的个数为%d个\n",a);
 printf("该字符串中其他字符的个数为%d个\n",b);
}
void tongji(char s[1024])
{
    int i;
    k=0,j=0,a=0;
    for(i=0;s[i]!='\0';i++)
    {
        if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
            k++;
        if(s[i]>='0'&&s[i]<='9')
            j++;
        if(s[i]==' ')
            a++;
 
    }
    b=i-k-j-a;
    printf("%d,%d,%d,%d\n",k,j,a,b);
    //return(k,j,a,b); //这里只可能返回一次,其它的值不会返回
    //return(j);
    //return(a);
    //return(b);
}
2
#include "stdio.h"
void px(int a[10]);
void main()
{
    int a[10];
    int i;
    printf("please inpur 10 numbers\n");
    for(i=0;i<10;i++)
        scanf("%d",a[i]);
    printf("它们的顺序为:");
    px(a);   //注意数组作为参数时的调用
}
void px(int a[10])
{
 int i,j,t;
 for(j=0;j<14;j++)
  for(i=0;i<14-j;i++)
   if(a[i]>a[i+1])
   {
    t=a[i];
    a[i]=a[i+1];
    a[i+1]=t;
   }
   for(i=0;i<15;i++)
    printf("%  d",a[i]);
   printf("\n");
}

template<typename T>
void bubblesort(T *s,int b,int e)
{
 T i,j;
 T tmp;
 for(i=b+1;i!=e;++i)
 {
  j=i;
  do
  {
   if(s[j-1]>s[j])
   {
    tmp=s[j-1];
    s[j-1]=s[j];
    s[j]=tmp;
    if(--j==b)
     break;
   }
   else
    break;
  }while(true);
 }
}

先给你个冒泡的~

第一个:函数只能有一个返回值。要返回那么多的话就不要调用函数。或者定义成全局变量。

#include "string.h"

int k,j,a,b;
void main()
{

第二个:px这个函数需要一个参数,按你的要求,参数应该是数组a,即 px(int a[10]); px(a);

void px(int a[10])
 
 printf("please inpur 10 numbers\n");
 for(i=0;i<10;i++)
  scanf("%d",a[i]);
 printf("它们的顺序为:");
 px(a);

}
void px()
{

上一个:c++编程问题
下一个:C++程序编写

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,