Your functions aren't prototyped, both bubble and swap return nothing, so void would be a better return value, and a is not a string, so the %s format modifier is a poor choice. You really need to use a loop and %d. It's also hard to tell how well the sort works when the input is already sorted.
Code:
#include<stdio.h>
void bubble(int a[],int n);
void swap(int *p, int *q);
int main(void)
{
int a[]={7,6,5,4,3,2,1};
int i;
for (i = 0; i < 7; i++)
printf("%d ",a[i]);
printf("\n");
bubble(a,8);
for (i = 0; i < 7; i++)
printf("%d ",a[i]);
printf("\n");
}
void bubble(int a[],int n)
{
int i,j;
for(i=0; i<n-1;++i)
for(j=n-1;i<j;--j)
if(a[j-1]>a[j])
swap(&a[j-1],&a[j]);
}
void swap(int *p, int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}